20261008
This commit is contained in:
+711
-415
File diff suppressed because it is too large
Load Diff
+762
-479
File diff suppressed because it is too large
Load Diff
+744
-479
File diff suppressed because it is too large
Load Diff
+371
-197
@@ -1,135 +1,158 @@
|
||||
<template>
|
||||
<view class="flex flex-col justify-start items-start">
|
||||
<text class="text-50">发布我的回收信息</text>
|
||||
<text class="text-gray">回收信息越完整,成功交易越容易</text>
|
||||
<el-form ref="form" :model="form" label-width="140px" class="mt-20">
|
||||
<el-form-item label="信息失效时间:">
|
||||
<el-date-picker
|
||||
v-model="form.expiredTime"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="物资分类:">
|
||||
<el-radio-group v-model="form.category" size="small">
|
||||
<el-radio label="机械设备">
|
||||
<text>机械设备</text>
|
||||
</el-radio>
|
||||
<el-radio label="成品钢材">
|
||||
<text>成品钢材</text>
|
||||
</el-radio>
|
||||
<el-radio label="废旧钢材">
|
||||
<text>废旧钢材</text>
|
||||
</el-radio>
|
||||
<el-radio label="旧架子管">
|
||||
<text>旧架子管</text>
|
||||
</el-radio>
|
||||
<el-radio label="旧扣件">
|
||||
<text>旧扣件</text>
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="信息标题:">
|
||||
<el-input v-model="form.title" placeholder="一句话简介物资,如拍卖直缝钢管200吨等"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="回收方简述:">
|
||||
<el-input v-model="form.desc" placeholder="请详细描述物资信息,描述内容:材料名称、材质......(限300字以内)"
|
||||
type="textarea" show-word-limit maxlength="300"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="回收物实景照片:">
|
||||
<vk-data-upload v-model="form.files"
|
||||
accept="image/*">
|
||||
</vk-data-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="回收单位地址" class="ml-10">
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="5">
|
||||
<el-select v-model="provinceIndex" placeholder="省" @change="selectProvince">
|
||||
<el-option v-for="(item, index) in provinceData" :key="index" :value="index"
|
||||
:label="item.name"/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-select v-model="cityIndex" placeholder="市" @change="selectCity">
|
||||
<template v-if="provinceIndex !== null">
|
||||
<el-option v-for="(item, index) in cityData[provinceIndex]" :key="index"
|
||||
:value="index"
|
||||
:label="item.name"/>
|
||||
</template>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-select v-model="areaIndex" placeholder="区/县" @change="selectArea">
|
||||
<template v-if="provinceIndex !== null && cityIndex !== null">
|
||||
<el-option v-for="(item, index) in areaData[provinceIndex][cityIndex]"
|
||||
:key="index" :value="index"
|
||||
:label="item.name"/>
|
||||
</template>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-input v-model="form.addressDetail"
|
||||
placeholder="详细地址或几公里范围内"></el-input>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
<view class="form-title-wrap">
|
||||
<view class="goods-info-title">
|
||||
<view class="form-title">
|
||||
回收单位信息
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="公司信息">
|
||||
<el-input v-model="form.supplier.companyName"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="公司联系方式">
|
||||
<el-input v-model="form.supplier.contract"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="个人信息">
|
||||
<el-input v-model="form.supplier.personalName"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="个人联系方式">
|
||||
<el-input v-model="form.supplier.personalContract"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="授权人姓名">
|
||||
<el-input v-model="form.supplier.managerName"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="授权联系方式">
|
||||
<el-input v-model="form.supplier.managerContract"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<view class="mt-20 flex justify-start items-center">
|
||||
<text class="mr-25">您是否对以上信息进行了详细核实:</text>
|
||||
<el-radio label="是" v-model="checked">
|
||||
<text>是</text>
|
||||
</el-radio>
|
||||
<el-radio label="否" v-model="checked">
|
||||
<text>否</text>
|
||||
</el-radio>
|
||||
</view>
|
||||
<view class="flex justify-center items-center mt-30 m-a">
|
||||
<el-button type="primary" :disabled="checked === '否'" @click="publish">立即发布</el-button>
|
||||
<view class="flex flex-col justify-start items-start">
|
||||
<text class="text-50">发布我的回收信息</text>
|
||||
<text class="text-gray">回收信息越完整,成功交易越容易</text>
|
||||
<el-form ref="form" :model="form" label-width="140px" class="mt-20">
|
||||
<el-form-item label="信息失效时间:" required>
|
||||
<el-date-picker
|
||||
:picker-options="pickerOptions"
|
||||
v-model="form.expiredTime"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="物资分类:" required>
|
||||
<div class="flex justify-start items-center">
|
||||
<el-cascader :options="cateData" v-model="form.category" :disabled="form.otherCate"
|
||||
:props="{'label': 'name', 'value': 'name'}"/>
|
||||
<el-checkbox v-model="form.otherCate" class="mx-20">其他分类</el-checkbox>
|
||||
<el-input v-model="form.otherCateName" :disabled="!form.otherCate" placeholder="如物资分类选项中不能描述您的信息物资主要内容,请在此用专业或通用术语填写"
|
||||
class="ml-20"/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="信息标题:" required>
|
||||
<el-input v-model="form.title" placeholder="一句话简介回收内容,如 常年回收 二手、废旧螺纹钢、型材等"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="回收方简述:">
|
||||
<el-input v-model="form.desc" placeholder="请详细描述物资信息,描述内容:材料名称、材质......(限300字以内)"
|
||||
type="textarea" show-word-limit maxlength="300"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="回收物实景照片:">
|
||||
<vk-data-upload v-model="form.files" list-type="text"
|
||||
accept="image/*">
|
||||
</vk-data-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="回收单位地址" class="ml-10" required>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="5">
|
||||
<el-select v-model="provinceIndex" placeholder="省" @change="selectProvince">
|
||||
<el-option v-for="(item, index) in provinceData" :key="index" :value="index"
|
||||
:label="item.name"/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-select v-model="cityIndex" placeholder="市" @change="selectCity">
|
||||
<template v-if="provinceIndex !== null">
|
||||
<el-option v-for="(item, index) in cityData[provinceIndex]" :key="index"
|
||||
:value="index"
|
||||
:label="item.name"/>
|
||||
</template>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-select v-model="areaIndex" placeholder="区/县" @change="selectArea">
|
||||
<template v-if="provinceIndex !== null && cityIndex !== null">
|
||||
<el-option v-for="(item, index) in areaData[provinceIndex][cityIndex]"
|
||||
:key="index" :value="index"
|
||||
:label="item.name"/>
|
||||
</template>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-input v-model="form.addressDetail"
|
||||
placeholder="详细地址或几公里范围内"></el-input>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
<view class="form-title-wrap">
|
||||
<view class="goods-info-title">
|
||||
<view class="form-title">
|
||||
回收单位信息
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<el-row :gutter="10" v-if="vk.getVuex('$user.userInfo.accountType') === 2">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="公司信息">
|
||||
<el-input v-model="form.supplier.companyName"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="公司联系方式">
|
||||
<el-input v-model="form.supplier.contract"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10" v-if="vk.getVuex('$user.userInfo.accountType') === 1">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="个人信息">
|
||||
<el-input v-model="form.supplier.personalName"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="个人联系方式">
|
||||
<el-input v-model="form.supplier.personalContract"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12" class="flex justify-start items-center">
|
||||
<el-form-item label="授权业务咨询人">
|
||||
<el-select v-model="form.supplier.managerName" placeholder="点击选择业务联系人"
|
||||
class="w-100p" @change="selectContact">
|
||||
<el-option
|
||||
v-for="(item, index) in contactList"
|
||||
:key="index"
|
||||
:label="item.name"
|
||||
:value="item.name">
|
||||
</el-option>
|
||||
<view slot="empty" class="text-gray pointer p-20">
|
||||
<text>无业务联系人,请到</text>
|
||||
<text class="text-main mx-15" @click="navTo">个人中心</text>
|
||||
<text>添加</text>
|
||||
</view>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" class="flex justify-start items-center">
|
||||
<el-form-item label="业务咨询联系方式">
|
||||
<el-input v-model="form.supplier.managerContract" type="number" disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<view class="mt-20 flex justify-start items-center">
|
||||
<text class="mr-25">您是否对以上信息进行了详细核实:</text>
|
||||
<el-radio label="是" v-model="checked">
|
||||
<text>是</text>
|
||||
</el-radio>
|
||||
<el-radio label="否" v-model="checked">
|
||||
<text>否</text>
|
||||
</el-radio>
|
||||
</view>
|
||||
<view class="mt-20 flex justify-start items-center">
|
||||
<text class="mr-25">是否加急({{ urgentAmount }}元/次,将在旧货交易页面加急展示区展示):</text>
|
||||
<el-radio :label="true" v-model="form.isUrgent">
|
||||
<text>是</text>
|
||||
</el-radio>
|
||||
<el-radio :label="false" v-model="form.isUrgent">
|
||||
<text>否</text>
|
||||
</el-radio>
|
||||
</view>
|
||||
<view class="my-25 text-main font-bold">本月剩余旧货发布次数:{{ remainOldNum }}</view>
|
||||
<view class="flex justify-start items-center">
|
||||
<el-checkbox v-model="agree">我已阅读并同意</el-checkbox>
|
||||
<span class="text-main pointer font-bold" @click="showAgreement">《金久信旧货交易协议》</span>
|
||||
</view>
|
||||
<view class="flex justify-center items-center mt-30 m-a">
|
||||
<el-button type="primary" :disabled="checked === '否' || !agree" @click="publish">立即发布</el-button>
|
||||
</view>
|
||||
<el-dialog title="金久信旧货交易协议" :visible.sync="dialogVisible" width="70%" close-on-press-escape
|
||||
close-on-click-modal show-close
|
||||
>
|
||||
<div v-html="agreement"></div>
|
||||
</el-dialog>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -138,59 +161,206 @@ import citys from "@/uni_modules/vk-uview-ui/libs/address/citys.json";
|
||||
import areas from "@/uni_modules/vk-uview-ui/libs/address/areas.json";
|
||||
|
||||
export default {
|
||||
name: "type_3",
|
||||
data() {
|
||||
return {
|
||||
provinceData: provinces,
|
||||
cityData: citys,
|
||||
areaData: areas,
|
||||
form: {
|
||||
type: 3,
|
||||
category: 0,
|
||||
files: [],
|
||||
title: '',
|
||||
desc: '',
|
||||
addressRegion: [],
|
||||
addressDetail: '',
|
||||
expiredTime: '',
|
||||
supplier: {
|
||||
companyName: '',
|
||||
contract: '',
|
||||
personalName: '',
|
||||
personalContract: '',
|
||||
managerName: '',
|
||||
managerContract: '',
|
||||
},
|
||||
|
||||
},
|
||||
provinceIndex: null,
|
||||
cityIndex: null,
|
||||
areaIndex: null,
|
||||
checked: '否'
|
||||
}
|
||||
name: "type_3",
|
||||
props: {
|
||||
urgentAmount: {
|
||||
type: Number,
|
||||
default: 10
|
||||
},
|
||||
methods: {
|
||||
selectProvince(index) {
|
||||
this.form.addressRegion[0] = this.provinceData[index]
|
||||
remainOldNum: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
agreement: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
contactList: {
|
||||
type: Array,
|
||||
default: ''
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pickerOptions: {
|
||||
disabledDate(time) {
|
||||
return time.getTime() < Date.now();
|
||||
},
|
||||
selectCity(index) {
|
||||
this.form.addressRegion[1] = this.cityData[this.provinceIndex][index]
|
||||
},
|
||||
agree: false,
|
||||
provinceData: provinces,
|
||||
cityData: citys,
|
||||
areaData: areas,
|
||||
allChildCate: [],
|
||||
cateData: [],
|
||||
form: {
|
||||
otherCate: false,
|
||||
otherCateName: '',
|
||||
type: 3,
|
||||
category: 0,
|
||||
files: [],
|
||||
title: '',
|
||||
desc: '',
|
||||
addressRegion: {},
|
||||
addressDetail: '',
|
||||
expiredTime: '',
|
||||
supplier: {
|
||||
companyName: '',
|
||||
contract: '',
|
||||
personalName: '',
|
||||
personalContract: '',
|
||||
managerName: '',
|
||||
managerContract: '',
|
||||
},
|
||||
selectArea(index) {
|
||||
this.form.addressRegion[2] = this.areaData[this.provinceIndex][this.cityIndex][index]
|
||||
},
|
||||
async publish() {
|
||||
await vk.callFunction({
|
||||
url: 'client/old/kh/add',
|
||||
data: this.form
|
||||
})
|
||||
this.$message({
|
||||
message: "提交成功",
|
||||
type: 'success'
|
||||
})
|
||||
vk.navigateBack()
|
||||
}
|
||||
isUrgent: false
|
||||
},
|
||||
provinceIndex: null,
|
||||
cityIndex: null,
|
||||
areaIndex: null,
|
||||
checked: '否',
|
||||
dialogVisible: false
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
selectProvince(index) {
|
||||
this.form.addressRegion.province = this.provinceData[index]
|
||||
},
|
||||
selectCity(index) {
|
||||
this.form.addressRegion.city = this.cityData[this.provinceIndex][index]
|
||||
},
|
||||
selectArea(index) {
|
||||
this.form.addressRegion.area = this.areaData[this.provinceIndex][this.cityIndex][index]
|
||||
},
|
||||
async publish() {
|
||||
if (this.remainOldNum === 0) {
|
||||
this.$confirm('您的旧货发布次数已用完,是否立即购买?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(async ({confirm}) => {
|
||||
if (confirm) {
|
||||
const {data} = await vk.callFunction({
|
||||
url: 'client/old/kh/buyNum',
|
||||
})
|
||||
vk.navigateTo({
|
||||
url: `/pages/index/shop/pay?id=${data}`
|
||||
})
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.provinceIndex === null || this.cityIndex === null || this.areaIndex === null) return this.$message({
|
||||
message: "请选择完整的地址",
|
||||
type: 'warning'
|
||||
})
|
||||
if (!this.form.addressDetail) return this.$message({
|
||||
message: "请填写详细地址",
|
||||
type: 'warning'
|
||||
})
|
||||
if (!this.form.title) return this.$message({
|
||||
message: "请填写标题",
|
||||
type: 'warning'
|
||||
})
|
||||
if (!this.form.otherCate) {
|
||||
if (!this.form.category) return this.$message({
|
||||
message: "请选择分类",
|
||||
type: 'warning'
|
||||
})
|
||||
} else {
|
||||
if (!this.form.otherCateName) return this.$message({
|
||||
message: "请输入其他分类",
|
||||
type: 'warning'
|
||||
})
|
||||
this.form.category = ['', this.form.otherCateName]
|
||||
}
|
||||
if (!this.form.expiredTime) return this.$message({
|
||||
message: "请选择失效时间",
|
||||
type: 'warning'
|
||||
})
|
||||
const res = await vk.callFunction({
|
||||
url: 'client/old/kh/add',
|
||||
data: this.form
|
||||
})
|
||||
localStorage.removeItem("old_3")
|
||||
this.$message({
|
||||
message: "您的信息已经提交,等待管理员审核,请您耐心等待!",
|
||||
type: 'success'
|
||||
})
|
||||
if (this.form.isUrgent) {
|
||||
vk.navigateTo({
|
||||
url: `/pages/index/shop/pay?id=${res.data}`
|
||||
})
|
||||
} else {
|
||||
vk.redirectTo({url: '/pages/index/old/old'});
|
||||
}
|
||||
},
|
||||
showAgreement() {
|
||||
// this.$confirm(this.agreement, '金久信旧货交易协议', {
|
||||
// cancelButtonText: '关闭',
|
||||
// showConfirmButton: false,
|
||||
// dangerouslyUseHTMLString: true,
|
||||
// customClass: 'confirm-box'
|
||||
// })
|
||||
this.dialogVisible = true
|
||||
},
|
||||
navTo() {
|
||||
vk.navigateTo({url: '/pages/user/user?menu=business-contact'})
|
||||
},
|
||||
selectContact(name) {
|
||||
const contact = this.contactList.find(item => item.name === name)
|
||||
this.form.supplier.managerContract = contact.phone
|
||||
},
|
||||
save() {
|
||||
localStorage.setItem("old_3", JSON.stringify({
|
||||
form: this.form,
|
||||
provinceIndex: this.provinceIndex,
|
||||
cityIndex: this.cityIndex,
|
||||
areaIndex: this.areaIndex,
|
||||
}))
|
||||
this.$message({
|
||||
message: "已保存",
|
||||
type: 'success'
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
mounted() {
|
||||
vk.callFunction({
|
||||
url: 'client/old/pub/getTree',
|
||||
title: '请求中...',
|
||||
data: {type: 3},
|
||||
success: (data) => {
|
||||
this.cateData = data.rows.map(item => {
|
||||
item.children.forEach(child => {
|
||||
delete child.children
|
||||
})
|
||||
return item
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
if (vk.getVuex('$user.userInfo.accountType') === 2) {
|
||||
this.form.supplier.companyName = vk.getVuex('$user.userInfo.company.companyName')
|
||||
this.form.supplier.contract = vk.getVuex('$user.userInfo.company.mobile')
|
||||
} else {
|
||||
this.form.supplier.personalName = vk.getVuex('$user.userInfo.person.personName')
|
||||
this.form.supplier.personalContract = vk.getVuex('$user.userInfo.person.mobile')
|
||||
}
|
||||
if (!!localStorage.getItem("old_3")) {
|
||||
this.$confirm('您有一份暂存数据,是否恢复?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
const savedData = JSON.parse(localStorage.getItem("old_3"))
|
||||
this.form = savedData.form
|
||||
this.provinceIndex = savedData.provinceIndex
|
||||
this.cityIndex = savedData.cityIndex
|
||||
this.areaIndex = savedData.areaIndex
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -198,38 +368,42 @@ export default {
|
||||
@import "@/common/css/app.scss";
|
||||
|
||||
.form-title-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.goods-info-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.goods-info-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.form-title {
|
||||
padding-left: 10px;
|
||||
color: $--color-primary;
|
||||
font-size: 18px;
|
||||
line-height: 18px;
|
||||
border-left: 4px solid $--color-primary;
|
||||
}
|
||||
.form-title {
|
||||
padding-left: 10px;
|
||||
color: $--color-primary;
|
||||
font-size: 18px;
|
||||
line-height: 18px;
|
||||
border-left: 4px solid $--color-primary;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.sign-method-header {
|
||||
width: 120px;
|
||||
width: 120px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style>
|
||||
/deep/ .input-with-select{
|
||||
width: 200px;
|
||||
/deep/ .input-with-select {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
/deep/ .input-with-select .el-input-group__append {
|
||||
background-color: #fff !important;
|
||||
width: 80px !important;
|
||||
background-color: #fff !important;
|
||||
width: 80px !important;
|
||||
}
|
||||
|
||||
.confirm-box .el-dialog {
|
||||
width: 70%;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user