1、新增旧货市场

2、新增用户等级
This commit is contained in:
2023-12-07 04:00:37 +08:00
parent 3ff9d7d91a
commit cbb3872513
20 changed files with 3676 additions and 1613 deletions
+449 -419
View File
@@ -1,464 +1,494 @@
<template>
<view>
<top-bar></top-bar>
<common-header></common-header>
<category-bar></category-bar>
<template>
<view>
<top-bar></top-bar>
<common-header></common-header>
<category-bar></category-bar>
<view class="page-nav">
<el-breadcrumb separator=">">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>
<navigator style="display: inline-block;" url="/pages/index/old/list/list">旧货交易</navigator>
</el-breadcrumb-item>
<el-breadcrumb-item class="text-main">采购信息</el-breadcrumb-item>
</el-breadcrumb>
<el-row class="">
<el-button @click="toRelease" type="primary" round>发布旧货交易</el-button>
<el-button @click="toMy" type="primary" round plain class="empty-bg-plain-btn">我发布的信息
</el-button>
</el-row>
</view>
<view class="page-nav">
<el-breadcrumb separator=">">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>
<navigator style="display: inline-block;" url="/pages/index/old/list/list">旧货交易</navigator>
</el-breadcrumb-item>
<el-breadcrumb-item class="text-main">采购信息</el-breadcrumb-item>
</el-breadcrumb>
<el-row class="">
<el-button @click="toRelease" type="primary" round>发布旧货交易</el-button>
<el-button @click="toMy" type="primary" round plain class="empty-bg-plain-btn">我发布的信息
</el-button>
</el-row>
</view>
<!-- 筛选表单 -->
<view class="filter-outer">
<el-form @submit.native.prevent label-width="80px">
<el-form-item label="关键词" class="border-bottom pb-30">
<el-input @keyup.enter.native="search(1)" clearable placeholder="输入关键字搜索" v-model="keyword">
<i slot="prefix" class="el-input__icon el-icon-search"></i>
<el-button @click="search(1)" type="primary" slot="append" style="border-radius: 0">搜索
</el-button>
</el-input>
</el-form-item>
<el-form-item label="物资分类" class="border-bottom pb-30">
<view class="flex justify-start items-center flex-wrap">
<text @click="clickedCateIndex = -1" class="pointer mr-25"
:class="[clickedCateIndex === -1 ? 'text-main selected-cate' : '']">全部
</text>
<view v-for="(item, index) in categoryTreeData" :key="index">
<text @click="clickedCateIndex = index" class="pointer mr-25"
:class="[clickedCateIndex === index ? 'text-main selected-cate' : '']"
v-if="index < 10">
{{ item.name }}
</text>
</view>
</view>
<view class="child-cate flex justify-start items-center flex-wrap">
<template v-if="clickedCateIndex === -1">
<text class="pointer mr-25" @click="selectCate(item._id)"
:class="[checkCategoryList.includes(item._id) ? 'text-main' : '']"
v-for="(item, index) in allChildCate" :key="index">{{ item.name }}
</text>
</template>
<template v-else>
<text class="pointer mr-25" @click="selectCate(item._id)"
:class="[checkCategoryList.includes(item._id) ? 'text-main' : '']"
v-for="(item, index) in categoryTreeData[clickedCateIndex].children" :key="index">
{{ item.name }}
</text>
</template>
</view>
</el-form-item>
<el-form-item label="筛选区域" class="border-bottom pb-30">
<view class="flex justify-start items-center flex-wrap">
<text @click="selectProvince(-1)" class="pointer mr-25 flex-grow-0"
:class="[checkProvinceList.length === 0 ? 'text-main selected-cate' : '']">全国
</text>
<view v-for="(item, index) in provinceData" :key="index" class="flex-grow-0 pointer mr-25">
<text @click="selectProvince(item.code)"
:class="[checkProvinceList.includes(item.code)? 'text-main selected-cate' : '']"
v-if="index < 10 || showAllProvince">
{{ item.name }}
</text>
</view>
<text @click="showAllProvince = !showAllProvince" class="pointer mr-25">查看更多
</text>
</view>
</el-form-item>
<el-form-item label="已选">
<view class="tags">
<el-tag v-for="(item, index) in checkCategoryArr" :key="index">{{ item.name }}</el-tag>
</view>
</el-form-item>
<!-- 筛选表单 -->
<view class="filter-outer">
<el-form @submit.native.prevent label-width="80px">
<el-form-item label="关键词" class="border-bottom pb-30">
<el-input @keyup.enter.native="search(1)" clearable placeholder="输入关键字搜索" v-model="keyword">
<i slot="prefix" class="el-input__icon el-icon-search"></i>
<el-button @click="search(1)" type="primary" slot="append" style="border-radius: 0">搜索
</el-button>
</el-input>
</el-form-item>
<el-form-item label="物资分类" class="border-bottom pb-30">
<view class="flex justify-start items-center flex-wrap">
<text @click="clickedCateIndex = -1" class="pointer mr-25"
:class="[clickedCateIndex === -1 ? 'text-main selected-cate' : '']">全部
</text>
<view v-for="(item, index) in categoryTreeData" :key="index">
<text @click="clickedCateIndex = index" class="pointer mr-25"
:class="[clickedCateIndex === index ? 'text-main selected-cate' : '']"
v-if="index < 10">
{{ item.name }}
</text>
</view>
</view>
<view class="child-cate flex justify-start items-center flex-wrap">
<template v-if="clickedCateIndex === -1">
<text class="pointer mr-25" @click="selectCate(item._id)"
:class="[checkCategoryList.includes(item._id) ? 'text-main' : '']"
v-for="(item, index) in allChildCate" :key="index">{{ item.name }}
</text>
</template>
<template v-else>
<text class="pointer mr-25" @click="selectCate(item._id)"
:class="[checkCategoryList.includes(item._id) ? 'text-main' : '']"
v-for="(item, index) in categoryTreeData[clickedCateIndex].children" :key="index">
{{ item.name }}
</text>
</template>
</view>
</el-form-item>
<el-form-item label="筛选区域" class="border-bottom pb-30">
<view class="flex justify-start items-center flex-wrap">
<text @click="selectProvince(-1)" class="pointer mr-25 flex-grow-0"
:class="[checkProvinceList.length === 0 ? 'text-main selected-cate' : '']">全国
</text>
<view v-for="(item, index) in provinceData" :key="index" class="flex-grow-0 pointer mr-25">
<text @click="selectProvince(item.code)"
:class="[checkProvinceList.includes(item.code)? 'text-main selected-cate' : '']"
v-if="index < 10 || showAllProvince">
{{ item.name }}
</text>
</view>
<text @click="showAllProvince = !showAllProvince" class="pointer mr-25">查看更多
</text>
</view>
</el-form-item>
<el-form-item label="已选">
<view class="tags">
<el-tag v-for="(item, index) in checkCategoryArr" :key="index">{{ item.name }}</el-tag>
</view>
</el-form-item>
</el-form>
</view>
</el-form>
</view>
<!-- 商品列表 -->
<view class="goods-list">
<view v-for="(item, index) in goodsData.rows" :key="index" class="goods">
<view class="goods-info">
<el-image src="https://oss.wsdns.cn/20231204/d35332fa6a3b4596b522edf9527ac612.png"
class="goods-img" />
<view class="info">
<view class="goods-name">高强螺栓 2000套</view>
<view class="field">
<view class="desc"><view class="text">企 业</view><view>广西聚钱财实业有限公司</view></view>
<view class="desc"></view>
<view class="desc"><view class="text">所属分类</view><view>成品钢材</view></view>
<view class="desc"><view class="text">发布时间</view><view>2022-09-30</view></view>
<view class="desc"><view class="text">所在地区</view><view>广西壮族自治区-河池市</view></view>
<view class="desc"><view class="text">有效日期</view><view>2022-09-30</view></view>
<!-- 商品列表 -->
<view class="goods-list">
<view v-for="(item, index) in goodsData.rows" :key="index" class="goods">
<view class="goods-info">
<el-image src="https://oss.wsdns.cn/20231204/d35332fa6a3b4596b522edf9527ac612.png"
class="goods-img"/>
<view class="info">
<view class="goods-name">高强螺栓 2000套</view>
<view class="field">
<view class="desc">
<view class="text">企 业</view>
<view>广西聚钱财实业有限公司</view>
</view>
<view class="desc"></view>
<view class="desc">
<view class="text">所属分类</view>
<view>成品钢材</view>
</view>
<view class="desc">
<view class="text">发布时间</view>
<view>2022-09-30</view>
</view>
<view class="desc">
<view class="text">所在地区</view>
<view>广西壮族自治区-河池市</view>
</view>
<view class="desc">
<view class="text">有效日期</view>
<view>2022-09-30</view>
</view>
</view>
</view>
</view>
<view class="buttons">
<button type="default" class="btn"
@click="vk.navigateTo('/pages/spot/goods/detail?id=' + item._id);" plain>查看电话
</button>
<button type="default" class="btn green"
@click="vk.navigateTo('/pages/spot/goods/detail?id=' + item._id);" plain>添加微信
</button>
<button type="default" class="btn"
@click="vk.navigateTo('/pages/spot/goods/detail?id=' + item._id);" plain>向此卖家询价
</button>
</view>
</view>
</view>
</view>
<view class="buttons">
<button type="default" class="btn" @click="vk.navigateTo('/pages/spot/goods/detail?id=' + item._id);" plain>查看电话</button>
<button type="default" class="btn green" @click="vk.navigateTo('/pages/spot/goods/detail?id=' + item._id);" plain>添加微信</button>
<button type="default" class="btn" @click="vk.navigateTo('/pages/spot/goods/detail?id=' + item._id);" plain>向此卖家询价</button>
</view>
</view>
<view class="paginatio">
<el-pagination @current-change="search" background layout="prev, pager, next" :total="goodsData.total">
</el-pagination>
</view>
</view>
<common-footer></common-footer>
</view>
</template>
<view class="paginatio">
<el-pagination @current-change="search" background layout="prev, pager, next" :total="goodsData.total">
</el-pagination>
</view>
</view>
<common-footer></common-footer>
</view>
</template>
<script>
import provinces from "@/uni_modules/vk-uview-ui/libs/address/provinces.json";
<script>
import provinces from "@/uni_modules/vk-uview-ui/libs/address/provinces.json";
export default {
data() {
return {
categoryTreeData: [],
allChildCate: [],
checkCategoryList: [],
clickedCateIndex: -1,
provinceData: provinces,
checkProvinceList: [],
keyword: '',
goodsData: {
total: 0,
rows: []
},
showAllProvince: false
};
},
onShow() {
this.search(1)
vk.callFunction({
url: 'client/spot/category/pub/getTree',
title: '请求中...',
data: {},
success: (data) => {
this.categoryTreeData = data.rows
this.allChildCate = []
this.categoryTreeData.forEach(item => {
item.children.forEach(child => {
this.allChildCate.push(child)
})
})
}
});
},
methods: {
selectCate(id) {
const index = this.checkCategoryList.indexOf(id)
if (index === -1) this.checkCategoryList.push(id)
else this.checkCategoryList.splice(index, 1)
this.search(1)
},
selectProvince(code) {
if (code === -1) this.checkProvinceList = []
else {
const index = this.checkProvinceList.indexOf(code)
if (index === -1) this.checkProvinceList.push(code)
else this.checkProvinceList.splice(index, 1)
}
this.search(1)
},
async toRelease() {
const {
userInfo
} = await vk.callFunction({
url: 'user/kh/getMyUserInfo'
})
if (!userInfo.fadadaConfirm || [-1, 2].includes(userInfo.authStatus)) {
this.$confirm('您尚未认证, 是否前往认证?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
vk.navigateTo({
url: '/pages/user/user?menu=fadada'
});
})
} else if (vk.pubfn.isNull(userInfo.businessCard)) {
this.$confirm('请完善名片信息', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
vk.navigateTo({
url: '/pages/user/user?menu=business-card'
});
})
} else {
vk.navigateTo({
url: '/pages/spot/release/release'
})
}
},
async toMy() {
const {
userInfo
} = await vk.callFunction({
url: 'user/kh/getMyUserInfo'
})
if (!userInfo.fadadaConfirm && userInfo.authStatus === 1) {
this.$confirm('您尚未认证, 是否前往认证?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.getCertUrl()
})
} else if (vk.pubfn.isNull(userInfo.businessCard)) {
this.$confirm('请完善名片信息', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
vk.navigateTo('/pages/user/user?menu=business-card');
})
} else {
vk.navigateTo({
url: '/pages/spot/goods/my'
})
}
},
export default {
data() {
return {
categoryTreeData: [],
allChildCate: [],
checkCategoryList: [],
clickedCateIndex: -1,
provinceData: provinces,
checkProvinceList: [],
keyword: '',
goodsData: {
total: 0,
rows: []
},
showAllProvince: false
};
},
onShow() {
this.search(1)
vk.callFunction({
url: 'client/spot/category/pub/getTree',
title: '请求中...',
data: {},
success: (data) => {
this.categoryTreeData = data.rows
this.allChildCate = []
this.categoryTreeData.forEach(item => {
item.children.forEach(child => {
this.allChildCate.push(child)
})
})
}
});
},
methods: {
selectCate(id) {
const index = this.checkCategoryList.indexOf(id)
if (index === -1) this.checkCategoryList.push(id)
else this.checkCategoryList.splice(index, 1)
this.search(1)
},
selectProvince(code) {
if (code === -1) this.checkProvinceList = []
else {
const index = this.checkProvinceList.indexOf(code)
if (index === -1) this.checkProvinceList.push(code)
else this.checkProvinceList.splice(index, 1)
}
this.search(1)
},
async toRelease() {
const {
userInfo
} = await vk.callFunction({
url: 'user/kh/getMyUserInfo'
})
if (!userInfo.fadadaConfirm || [-1, 2].includes(userInfo.authStatus)) {
this.$confirm('您尚未认证, 是否前往认证?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
vk.navigateTo({
url: '/pages/user/user?menu=fadada'
});
})
} else if (vk.pubfn.isNull(userInfo.businessCard)) {
this.$confirm('请完善名片信息', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
vk.navigateTo({
url: '/pages/user/user?menu=business-card'
});
})
} else {
vk.navigateTo({
url: '/pages/spot/release/release'
})
}
},
async toMy() {
const {
userInfo
} = await vk.callFunction({
url: 'user/kh/getMyUserInfo'
})
if (!userInfo.fadadaConfirm && userInfo.authStatus === 1) {
this.$confirm('您尚未认证, 是否前往认证?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.getCertUrl()
})
} else if (vk.pubfn.isNull(userInfo.businessCard)) {
this.$confirm('请完善名片信息', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
vk.navigateTo('/pages/user/user?menu=business-card');
})
} else {
vk.navigateTo({
url: '/pages/spot/goods/my'
})
}
},
search(pageIndex) {
vk.callFunction({
url: 'client/spot/goods/pub/getList',
data: {
pageIndex: pageIndex,
pageSize: 20,
keyword: this.keyword,
categoryIds: this.checkCategoryList,
provinceCodes: this.checkProvinceList
},
success: (data) => {
console.log('data: ', data);
data.rows.forEach(item => {
try {
item.addressStr = item.address.province.name + "-" + item.address.city
.name + "-" + item.address.area.name
} catch (err) {
item.addressStr = ""
}
})
this.goodsData = data
}
});
},
getCertUrl() {
vk.callFunction({
url: 'client/fadada.getVerifyUrl',
success: (res) => {
location.href = res.data.url
}
});
},
},
computed: {
checkCategoryArr() {
const arr = []
this.allChildCate.forEach(item => {
if (this.checkCategoryList.includes(item._id)) arr.push(item)
})
this.provinceData.forEach(item => {
if (this.checkProvinceList.includes(item.code)) {
arr.push(item)
}
})
return arr
}
search(pageIndex) {
vk.callFunction({
url: 'client/spot/goods/pub/getList',
data: {
pageIndex: pageIndex,
pageSize: 20,
keyword: this.keyword,
categoryIds: this.checkCategoryList,
provinceCodes: this.checkProvinceList
},
success: (data) => {
console.log('data: ', data);
data.rows.forEach(item => {
try {
item.addressStr = item.address.province.name + "-" + item.address.city
.name + "-" + item.address.area.name
} catch (err) {
item.addressStr = ""
}
})
this.goodsData = data
}
});
},
getCertUrl() {
vk.callFunction({
url: 'client/fadada.getVerifyUrl',
success: (res) => {
location.href = res.data.url
}
});
},
},
computed: {
checkCategoryArr() {
const arr = []
this.allChildCate.forEach(item => {
if (this.checkCategoryList.includes(item._id)) arr.push(item)
})
this.provinceData.forEach(item => {
if (this.checkProvinceList.includes(item.code)) {
arr.push(item)
}
})
return arr
}
}
}
</script>
}
}
</script>
<style lang="scss" scoped>
.carousel {
width: 1200px;
margin: 20px auto;
}
<style lang="scss" scoped>
.carousel {
width: 1200px;
margin: 20px auto;
}
.page-nav {
display: flex;
justify-content: space-between;
}
.page-nav {
display: flex;
justify-content: space-between;
}
.carousel-img {
width: 100%;
height: 100%;
}
.carousel-img {
width: 100%;
height: 100%;
}
.goods-options {
background-color: #FFFFFF;
padding: 20px;
}
.goods-options {
background-color: #FFFFFF;
padding: 20px;
}
.filter-outer {
width: 1200px;
margin: 20px auto;
background-color: #FFFFFF;
padding: 20px;
}
.filter-outer {
width: 1200px;
margin: 20px auto;
background-color: #FFFFFF;
padding: 20px;
}
.tags {
display: flex;
flex-wrap: wrap;
.tags {
display: flex;
flex-wrap: wrap;
.el-tag {
margin-right: 10px;
}
}
.el-tag {
margin-right: 10px;
}
}
.goods-list {
width: 1200px;
margin: 20px auto;
display: flex;
.goods-list {
width: 1200px;
margin: 20px auto;
display: flex;
flex-direction: row;
justify-content: space-between;
flex-wrap: wrap;
}
flex-wrap: wrap;
}
.goods {
background-color: #FFFFFF;
box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.05);
text-align: center;
.goods {
background-color: #FFFFFF;
box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.05);
text-align: center;
width: 1200px;
margin: 10px auto;
padding: 20px;
display: flex;
justify-content: space-between;
.goods-info{
display: flex;
.goods-img {
width: 200px;
height: 150px;
}
.info{
width: 700px;
text-align: left;
margin-left: 20px;
.goods-name{
font-size: 20px;
font-weight: 500;
line-height: 2.5em;
.goods-info {
display: flex;
.goods-img {
width: 200px;
height: 150px;
}
.field{
display: flex;
flex-wrap: wrap;
.desc{
display: flex;
width: 300px;
line-height: 2.5em;
.text{
width: 80px;
color: #999999;
.info {
width: 700px;
text-align: left;
margin-left: 20px;
.goods-name {
font-size: 20px;
font-weight: 500;
line-height: 2.5em;
}
}
.field {
display: flex;
flex-wrap: wrap;
.desc {
display: flex;
width: 300px;
line-height: 2.5em;
.text {
width: 80px;
color: #999999;
}
}
}
}
}
.buttons {
padding: 0 20px;
width: 200px;
border-left: 1px solid #f3f3f3;
display: flex;
flex-direction: column;
justify-content: space-around;
.btn {
width: 120px;
}
}
.green {
background-color: #7ec050 !important;
color: #ffffff;
}
}
.buttons{
padding: 0 20px;
width: 200px;
border-left: 1px solid #f3f3f3;
display: flex;
flex-direction: column;
justify-content: space-around;
.btn{
width: 120px;
}
.green{
background-color: #7ec050 !important;
color: #ffffff;
}
&-title {
font-size: 15px;
color: #101010;
height: 62px;
padding-top: 20px;
font-weight: bold;
}
&-title {
font-size: 15px;
color: #101010;
height: 62px;
padding-top: 20px;
font-weight: bold;
}
&-stock {
font-size: 12px;
color: #BD3124;
}
&-stock {
font-size: 12px;
color: #BD3124;
}
&-address {
font-size: 12px;
margin: 10px 0;
}
&-address {
font-size: 12px;
margin: 10px 0;
}
&-image {
width: 200px;
height: 70px;
margin: 0 auto;
&-image {
width: 200px;
height: 70px;
margin: 0 auto;
image {
width: 100%;
height: 100%;
}
}
image {
width: 100%;
height: 100%;
}
}
&-company {
color: #4F4F4F;
font-size: 14px;
margin: 10px 0;
}
&-company {
color: #4F4F4F;
font-size: 14px;
margin: 10px 0;
}
&-buy {
width: 108px;
height: 30px;
line-height: 30px;
background-color: rgba(255, 255, 255, 1);
color: rgba(169, 41, 36, 1);
font-size: 13px;
text-align: center;
font-family: Roboto;
border: 1px solid rgba(169, 41, 36, 1);
margin: 0 auto;
cursor: pointer;
}
&-buy {
width: 108px;
height: 30px;
line-height: 30px;
background-color: rgba(255, 255, 255, 1);
color: rgba(169, 41, 36, 1);
font-size: 13px;
text-align: center;
font-family: Roboto;
border: 1px solid rgba(169, 41, 36, 1);
margin: 0 auto;
cursor: pointer;
}
.goods-image {
width: 100%;
}
}
.goods-image {
width: 100%;
}
}
.paginatio {
float: none;
width: 1200px;
margin: 20px auto;
display: flex;
justify-content: center;
}
.paginatio {
float: none;
width: 1200px;
margin: 20px auto;
display: flex;
justify-content: center;
}
.selected-cate {
border-bottom: 2px solid #BD3124;
line-height: 40rpx;
}
.selected-cate {
border-bottom: 2px solid #BD3124;
line-height: 40rpx;
}
.child-cate {
background-color: #DB8382;
color: white;
margin-top: 10rpx;
border-radius: 15rpx;
padding: 0 20rpx;
}
</style>
.child-cate {
background-color: #DB8382;
color: white;
margin-top: 10rpx;
border-radius: 15rpx;
padding: 0 20rpx;
}
</style>
+13
View File
@@ -0,0 +1,13 @@
<template>
</template>
<script>
export default {
name: "my",
data() {
return {}
},
methods: {}
}
</script>
+567 -560
View File
File diff suppressed because it is too large Load Diff
+46
View File
@@ -0,0 +1,46 @@
<template>
<view>
<top-bar></top-bar>
<common-header></common-header>
<category-bar></category-bar>
<view class="w-1200 m-a bg-white">
<image src="/static/images/old/liucheng2.png" class="w-full" mode="widthFix"/>
<view class="p-20">
<el-tabs v-model="activeName" stretch>
<el-tab-pane label="拍卖信息发布" name="0">
<type_0/>
</el-tab-pane>
<el-tab-pane label="采购信息发布" name="1">
<type_1/>
</el-tab-pane>
<el-tab-pane label="承租信息发布" name="2">
<type_2/>
</el-tab-pane>
<el-tab-pane label="物资回收信息发布" name="3">
<type_3/>
</el-tab-pane>
</el-tabs>
</view>
</view>
<gap height="50"/>
<common-footer></common-footer>
</view>
</template>
<script>
import Type_0 from "./release/type_0.vue";
import Type_1 from "./release/type_1.vue";
import Type_2 from "./release/type_2.vue";
import Type_3 from "./release/type_3.vue";
export default {
name: "list",
components: {Type_3, Type_2, Type_1, Type_0},
data() {
return {
activeName: '0'
}
},
methods: {}
}
</script>
+457
View File
@@ -0,0 +1,457 @@
<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-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>
<el-row :gutter="10">
<el-col :span="8">
<view class="flex justify-start items-center">
<el-form-item label="起拍计价单位:">
<el-input v-model="form.startNum" class="input-with-select">
<el-select v-model="form.unit" slot="append">
<el-option
v-for="(item, index) in unitList"
:key="index"
:label="item"
:value="item">
</el-option>
</el-select>
</el-input>
</el-form-item>
<text class="flex-1">(电议)</text>
</view>
</el-col>
<el-col :span="8">
<view class="flex justify-start items-center">
<el-form-item label="起拍人民币单价:">
<el-input v-model="form.startAmount" placeholder="请输入" style="width: 160px"/>
</el-form-item>
<text class="flex-1">(电议)</text>
</view>
</el-col>
<el-col :span="8">
<view class="flex justify-start items-center">
<el-form-item label="拍卖信息失效时间:">
<el-date-picker
v-model="form.expiredTime"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</view>
</el-col>
</el-row>
<view class="form-title-wrap">
<view class="goods-info-title">
<view class="form-title">
交易说明
</view>
</view>
</view>
<el-row :gutter="10">
<el-form-item label="报价区域:">
<el-col :span="5">
<el-select v-model="offerProvinceIndex" placeholder="省" @change="selectOfferProvince"
:disabled="form.offerAddressNoLimit">
<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="offerCityIndex" placeholder="市" @change="selectOfferCity"
:disabled="form.offerAddressNoLimit">
<template v-if="offerProvinceIndex !== null">
<el-option v-for="(item, index) in cityData[offerProvinceIndex]" :key="index"
:value="index"
:label="item.name"/>
</template>
</el-select>
</el-col>
<el-col :span="5">
<el-select v-model="offerAreaIndex" placeholder="区/县" @change="selectOfferArea"
:disabled="form.offerAddressNoLimit">
<template v-if="offerProvinceIndex !== null && offerCityIndex !== null">
<el-option v-for="(item, index) in areaData[offerProvinceIndex][offerCityIndex]"
:key="index" :value="index"
:label="item.name"/>
</template>
</el-select>
</el-col>
<el-col :span="5">
<el-checkbox v-model="form.offerAddressNoLimit" @change="changeOfferAddressNoLimit">不限区域
</el-checkbox>
</el-col>
</el-form-item>
</el-row>
<el-form-item label="付款方式:">
<view class="flex justify-start items-center">
<view class="flex justify-start items-center mr-35">
<el-radio label="预付" v-model="form.payMethod">
<text>预付</text>
</el-radio>
<el-input v-model="form.prePayRate" style="width: 200px"/>
<text>%货到付全款</text>
</view>
<el-radio label="提货付全款" v-model="form.payMethod">
<text>提货付全款</text>
</el-radio>
</view>
<view class="flex justify-start items-center mt-40">
<el-radio label="其他付款方式描述" v-model="form.payMethod">
<text>其他付款方式描述</text>
</el-radio>
<el-input v-model="form.otherPayMethodDesc"
type="textarea" show-word-limit maxlength="300"/>
</view>
</el-form-item>
<view class="form-title-wrap">
<view class="goods-info-title">
<view class="form-title">
简易合同备注和其他补充条款
</view>
</view>
</view>
<view class="p-30">
<view class="mb-20 flex justify-start items-center">
<el-radio v-model="form.signMethod" :label="0">法大大</el-radio>
<el-radio v-model="form.signMethod" :label="1">线下签约</el-radio>
</view>
<view v-if="form.signMethod === 0">
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">违约责任:</view>
<view class="border-left m-10 pl-20 flex-1">
1.
乙方所交产品品种、型号、规格、质量不符合规定的,如果甲方同意利用,应当按质论价;如果甲方不能利用的,应根据产品的具体情况,由乙方负责包换或包修,并承担修理、调换或退货而支付的实际费用;
2.乙方不予供货违约责任为甲方的实际损失+违约金,如乙方材料符合订货标准,甲方不能退货和不收货,甲方无条件应按实际本合同订货数量支付100%货款,并支付乙方因此产生的实际费用。带有甲乙双方单位相关收货人和发货人签字的本合同的发货清单事项和内容均视为本合同的补充合同,与本合同有相同的法律效力,双方应共同遵照执行。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">解决纠纷的方法:</view>
<view class="border-left m-10 pl-20 flex-1">
1、凡因本合同引起的或与本合同有关的任何争议,均可友好协商或仲裁解决,协商或仲裁不成的,双方协商同意在合同签订地人民法院管辖地起诉,违约一方或对合同争议承担主要责任的一方,应承担对方因仲裁和起诉而产生的全部律师代理费、鉴定(检验)费、诉讼保全费、诉讼保险费、公告费、差旅费、执行费、误工费和获取证据产生费用等其他相关费用。
2、双方本合同相关权利放弃均应有双方书面作出并加盖公章或授权委托人签字后生效。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">不可抗力:</view>
<view class="border-left m-10 pl-20 flex-1">
甲乙双方的任何一方由于不可抗力或突发公共事件的原因不能履行合同时,应及时向对方通报不能履行或不能完全履行的理由,以减轻可能给对方造成的损失,在取得有关机构证明以后,允许延期履行、部分履行或者不履行合同,并根据情况可部分或全部免予承担违约责任。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">其他:</view>
<view class="border-left m-10 pl-20 flex-1">
本合同的全部内容由双方平等共同协商一致,共同起草制定,非一方事先拟定,不属于格式条款。本合同自双方签字盖章后生效(包括电子签字、盖章),按本合同内容地址、联系方式寄送的一切文书、函件送达与否,均为视为送达有法律效力,通知途径和本合同内联系方式或地址送达文件双方均予以验证。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">采购方补充条款:</view>
<view class="border-left m-10 pl-20 flex-1">
供货方逾期供货承担采购方一切损失
</view>
</view>
</view>
</view>
<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.buyer.companyName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司联系方式">
<el-input v-model="form.buyer.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.buyer.personalName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="个人联系方式">
<el-input v-model="form.buyer.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.buyer.managerName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="授权联系方式">
<el-input v-model="form.buyer.managerContract"/>
</el-form-item>
</el-col>
</el-row>
<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>
</view>
</template>
<script>
import provinces from "@/uni_modules/vk-uview-ui/libs/address/provinces.json";
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_0",
data() {
return {
unitList: ['吨', '万吨'],
provinceData: provinces,
cityData: citys,
areaData: areas,
form: {
type: 0,
category: 0,
files: [],
title: '',
desc: '',
addressRegion: [],
addressDetail: '',
startNum: '',
unit: '吨',
startAmount: '',
expiredTime: '',
offerAddressRegion: [],
offerAddressNoLimit: false,
payMethod: '预付',
prePayRate: '',
otherPayMethodDesc: '',
signMethod: 0,
buyer: {
companyName: '',
contract: '',
personalName: '',
personalContract: '',
managerName: '',
managerContract: '',
},
supplier: {
companyName: '',
contract: '',
personalName: '',
personalContract: '',
managerName: '',
managerContract: '',
},
},
provinceIndex: null,
cityIndex: null,
areaIndex: null,
offerProvinceIndex: null,
offerCityIndex: null,
offerAreaIndex: null,
checked: '否'
}
},
methods: {
selectProvince(index) {
this.form.addressRegion[0] = this.provinceData[index]
},
selectCity(index) {
this.form.addressRegion[1] = this.cityData[this.provinceIndex][index]
},
selectArea(index) {
this.form.addressRegion[2] = this.areaData[this.provinceIndex][this.cityIndex][index]
},
selectOfferProvince(index) {
this.form.offerAddressRegion[0] = this.provinceData[index]
},
selectOfferCity(index) {
this.form.offerAddressRegion[1] = this.cityData[this.offerProvinceIndex][index]
},
selectOfferArea(index) {
this.form.offerAddressRegion[2] = this.areaData[this.offerProvinceIndex][this.offerCityIndex][index]
},
changeOfferAddressNoLimit(val) {
if (val) {
this.form.offerAddressRegion = []
this.offerProvinceIndex = this.offerCityIndex = this.offerAreaIndex = null
}
},
async publish() {
await vk.callFunction({
url: 'client/old/kh/add',
data: this.form
})
this.$message({
message: "提交成功",
type: 'success'
})
vk.navigateBack()
}
}
}
</script>
<style lang="scss" scoped>
@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: flex-start;
}
.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;
}
</style>
<style>
/deep/ .input-with-select{
width: 200px;
}
/deep/ .input-with-select .el-input-group__append {
background-color: #fff !important;
width: 80px !important;
}
</style>
+519
View File
@@ -0,0 +1,519 @@
<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="物资装货地" 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>
<el-form-item label="物资交货地" class="ml-10">
<el-row :gutter="10">
<el-col :span="5">
<el-select v-model="deliverProvinceIndex" placeholder="省" @change="selectDeliverProvince">
<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="deliverCityIndex" placeholder="市" @change="selectDeliverCity">
<template v-if="deliverProvinceIndex !== null">
<el-option v-for="(item, index) in cityData[deliverProvinceIndex]" :key="index"
:value="index"
:label="item.name"/>
</template>
</el-select>
</el-col>
<el-col :span="5">
<el-select v-model="deliverAreaIndex" placeholder="区/县" @change="selectDeliverArea">
<template v-if="deliverProvinceIndex !== null && deliverCityIndex !== null">
<el-option v-for="(item, index) in areaData[deliverProvinceIndex][deliverCityIndex]"
: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" style="justify-content: flex-start">
<view class="goods-info-title">
<view class="form-title">
纳税和税票要求
</view>
</view>
<el-radio-group v-model="form.invoice">
<el-radio :label="true">含税</el-radio>
<el-radio :label="false">不含税</el-radio>
</el-radio-group>
</view>
<view class="p-30">
<template v-if="form.invoice">
<el-form-item label="开票时间:">
<el-radio-group v-model="form.writeInvoiceTime">
<el-radio :label="0">付款当月(限20号之前付款,20号之后付款次月开票)</el-radio>
<el-radio :label="1">付款后次月</el-radio>
<el-radio :label="2">付款前</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="发票种类:">
<el-radio-group v-model="form.invoiceType">
<el-radio :label="0">增值税专用发票13%</el-radio>
<el-radio :label="1">增值税普通发票</el-radio>
<el-radio :label="2">普通发票</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="其他要求:">
<el-input v-model="form.invoiceOther" placeholder="请输入" size="small" type="textarea"/>
</el-form-item>
<el-form-item label="报价明细:">
<el-input v-model="form.invoiceDetail" placeholder="请输入" size="small" type="textarea"/>
</el-form-item>
</template>
<el-form-item label="报价失效时间:">
<el-date-picker
v-model="form.offerExpiredTime"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</view>
<view class="form-title-wrap">
<view class="goods-info-title">
<view class="form-title">
交易说明
</view>
</view>
</view>
<el-row :gutter="10">
<el-form-item label="报价区域:">
<el-col :span="5">
<el-select v-model="offerProvinceIndex" placeholder="省" @change="selectOfferProvince"
:disabled="form.offerAddressNoLimit">
<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="offerCityIndex" placeholder="市" @change="selectOfferCity"
:disabled="form.offerAddressNoLimit">
<template v-if="offerProvinceIndex !== null">
<el-option v-for="(item, index) in cityData[offerProvinceIndex]" :key="index"
:value="index"
:label="item.name"/>
</template>
</el-select>
</el-col>
<el-col :span="5">
<el-select v-model="offerAreaIndex" placeholder="区/县" @change="selectOfferArea"
:disabled="form.offerAddressNoLimit">
<template v-if="offerProvinceIndex !== null && offerCityIndex !== null">
<el-option v-for="(item, index) in areaData[offerProvinceIndex][offerCityIndex]"
:key="index" :value="index"
:label="item.name"/>
</template>
</el-select>
</el-col>
<el-col :span="5">
<el-checkbox v-model="form.offerAddressNoLimit" @change="changeOfferAddressNoLimit">不限区域
</el-checkbox>
</el-col>
</el-form-item>
</el-row>
<el-form-item label="付款方式:">
<view class="flex justify-start items-center">
<view class="flex justify-start items-center mr-35">
<el-radio label="预付" v-model="form.payMethod">
<text>预付</text>
</el-radio>
<el-input v-model="form.prePayRate" style="width: 200px"/>
<text>%货到付全款</text>
</view>
<el-radio label="提货付全款" v-model="form.payMethod">
<text>提货付全款</text>
</el-radio>
</view>
<view class="flex justify-start items-center mt-40">
<el-radio label="其他付款方式描述" v-model="form.payMethod">
<text>其他付款方式描述</text>
</el-radio>
<el-input v-model="form.otherPayMethodDesc"
type="textarea" show-word-limit maxlength="300"/>
</view>
</el-form-item>
<el-form-item label="报价形式:">
<el-radio label="整单报价" v-model="form.offerType">
<text>整单报价</text>
</el-radio>
<el-radio label="可分项报价" v-model="form.offerType">
<text>可分项报价</text>
</el-radio>
</el-form-item>
<view class="form-title-wrap">
<view class="goods-info-title">
<view class="form-title">
简易合同备注和其他补充条款
</view>
</view>
</view>
<view class="p-30">
<view class="mb-20 flex justify-start items-center">
<el-radio v-model="form.signMethod" :label="0">法大大</el-radio>
<el-radio v-model="form.signMethod" :label="1">线下签约</el-radio>
</view>
<view v-if="form.signMethod === 0">
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">违约责任:</view>
<view class="border-left m-10 pl-20 flex-1">
1.
乙方所交产品品种、型号、规格、质量不符合规定的,如果甲方同意利用,应当按质论价;如果甲方不能利用的,应根据产品的具体情况,由乙方负责包换或包修,并承担修理、调换或退货而支付的实际费用;
2.乙方不予供货违约责任为甲方的实际损失+违约金,如乙方材料符合订货标准,甲方不能退货和不收货,甲方无条件应按实际本合同订货数量支付100%货款,并支付乙方因此产生的实际费用。带有甲乙双方单位相关收货人和发货人签字的本合同的发货清单事项和内容均视为本合同的补充合同,与本合同有相同的法律效力,双方应共同遵照执行。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">解决纠纷的方法:</view>
<view class="border-left m-10 pl-20 flex-1">
1、凡因本合同引起的或与本合同有关的任何争议,均可友好协商或仲裁解决,协商或仲裁不成的,双方协商同意在合同签订地人民法院管辖地起诉,违约一方或对合同争议承担主要责任的一方,应承担对方因仲裁和起诉而产生的全部律师代理费、鉴定(检验)费、诉讼保全费、诉讼保险费、公告费、差旅费、执行费、误工费和获取证据产生费用等其他相关费用。
2、双方本合同相关权利放弃均应有双方书面作出并加盖公章或授权委托人签字后生效。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">不可抗力:</view>
<view class="border-left m-10 pl-20 flex-1">
甲乙双方的任何一方由于不可抗力或突发公共事件的原因不能履行合同时,应及时向对方通报不能履行或不能完全履行的理由,以减轻可能给对方造成的损失,在取得有关机构证明以后,允许延期履行、部分履行或者不履行合同,并根据情况可部分或全部免予承担违约责任。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">其他:</view>
<view class="border-left m-10 pl-20 flex-1">
本合同的全部内容由双方平等共同协商一致,共同起草制定,非一方事先拟定,不属于格式条款。本合同自双方签字盖章后生效(包括电子签字、盖章),按本合同内容地址、联系方式寄送的一切文书、函件送达与否,均为视为送达有法律效力,通知途径和本合同内联系方式或地址送达文件双方均予以验证。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">采购方补充条款:</view>
<view class="border-left m-10 pl-20 flex-1">
供货方逾期供货承担采购方一切损失
</view>
</view>
</view>
</view>
<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.buyer.companyName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司联系方式">
<el-input v-model="form.buyer.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.buyer.personalName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="个人联系方式">
<el-input v-model="form.buyer.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.buyer.managerName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="授权联系方式">
<el-input v-model="form.buyer.managerContract"/>
</el-form-item>
</el-col>
</el-row>
<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>
</view>
</template>
<script>
import provinces from "@/uni_modules/vk-uview-ui/libs/address/provinces.json";
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_1",
data() {
return {
provinceData: provinces,
cityData: citys,
areaData: areas,
form: {
type: 1,
category: 0,
files: [],
title: '',
desc: '',
addressRegion: [],
addressDetail: '',
deliverAddressRegion: [],
deliverAddressDetail: '',
invoice: false,
writeInvoiceTime: '',
invoiceType: '',
invoiceOther: '',
invoiceDetail: '',
expiredTime: '',
offerExpiredTime: '',
offerAddressRegion: [],
offerAddressNoLimit: false,
payMethod: '预付',
offerType: '整单报价',
prePayRate: '',
otherPayMethodDesc: '',
signMethod: 0,
buyer: {
companyName: '',
contract: '',
personalName: '',
personalContract: '',
managerName: '',
managerContract: '',
},
supplier: {
companyName: '',
contract: '',
personalName: '',
personalContract: '',
managerName: '',
managerContract: '',
},
},
provinceIndex: null,
cityIndex: null,
areaIndex: null,
deliverProvinceIndex: null,
deliverCityIndex: null,
deliverAreaIndex: null,
offerProvinceIndex: null,
offerCityIndex: null,
offerAreaIndex: null,
checked: '否'
}
},
methods: {
selectProvince(index) {
this.form.addressRegion[0] = this.provinceData[index]
},
selectCity(index) {
this.form.addressRegion[1] = this.cityData[this.provinceIndex][index]
},
selectArea(index) {
this.form.addressRegion[2] = this.areaData[this.provinceIndex][this.cityIndex][index]
},
selectDeliverProvince(index) {
this.form.deliverAddressRegion[0] = this.provinceData[index]
},
selectDeliverCity(index) {
this.form.deliverAddressRegion[1] = this.cityData[this.deliverProvinceIndex][index]
},
selectDeliverArea(index) {
this.form.deliverAddressRegion[2] = this.areaData[this.deliverProvinceIndex][this.deliverCityIndex][index]
},
selectOfferProvince(index) {
this.form.offerAddressRegion[0] = this.provinceData[index]
},
selectOfferCity(index) {
this.form.offerAddressRegion[1] = this.cityData[this.offerProvinceIndex][index]
},
selectOfferArea(index) {
this.form.offerAddressRegion[2] = this.areaData[this.offerProvinceIndex][this.offerCityIndex][index]
},
changeOfferAddressNoLimit(val) {
if (val) {
this.form.offerAddressRegion = []
this.offerProvinceIndex = this.offerCityIndex = this.offerAreaIndex = null
}
},
async publish() {
await vk.callFunction({
url: 'client/old/kh/add',
data: this.form
})
this.$message({
message: "提交成功",
type: 'success'
})
vk.navigateBack()
}
}
}
</script>
<style lang="scss" scoped>
@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: flex-start;
}
.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;
}
</style>
<style>
/deep/ .input-with-select{
width: 200px;
}
/deep/ .input-with-select .el-input-group__append {
background-color: #fff !important;
width: 80px !important;
}
</style>
+519
View File
@@ -0,0 +1,519 @@
<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="物资装货地" 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>
<el-form-item label="物资交货地" class="ml-10">
<el-row :gutter="10">
<el-col :span="5">
<el-select v-model="deliverProvinceIndex" placeholder="省" @change="selectDeliverProvince">
<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="deliverCityIndex" placeholder="市" @change="selectDeliverCity">
<template v-if="deliverProvinceIndex !== null">
<el-option v-for="(item, index) in cityData[deliverProvinceIndex]" :key="index"
:value="index"
:label="item.name"/>
</template>
</el-select>
</el-col>
<el-col :span="5">
<el-select v-model="deliverAreaIndex" placeholder="区/县" @change="selectDeliverArea">
<template v-if="deliverProvinceIndex !== null && deliverCityIndex !== null">
<el-option v-for="(item, index) in areaData[deliverProvinceIndex][deliverCityIndex]"
: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" style="justify-content: flex-start">
<view class="goods-info-title">
<view class="form-title">
纳税和税票要求
</view>
</view>
<el-radio-group v-model="form.invoice">
<el-radio :label="true">含税</el-radio>
<el-radio :label="false">不含税</el-radio>
</el-radio-group>
</view>
<view class="p-30">
<template v-if="form.invoice">
<el-form-item label="开票时间:">
<el-radio-group v-model="form.writeInvoiceTime">
<el-radio :label="0">付款当月(限20号之前付款,20号之后付款次月开票)</el-radio>
<el-radio :label="1">付款后次月</el-radio>
<el-radio :label="2">付款前</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="发票种类:">
<el-radio-group v-model="form.invoiceType">
<el-radio :label="0">增值税专用发票13%</el-radio>
<el-radio :label="1">增值税普通发票</el-radio>
<el-radio :label="2">普通发票</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="其他要求:">
<el-input v-model="form.invoiceOther" placeholder="请输入" size="small" type="textarea"/>
</el-form-item>
<el-form-item label="报价明细:">
<el-input v-model="form.invoiceDetail" placeholder="请输入" size="small" type="textarea"/>
</el-form-item>
</template>
<el-form-item label="报价失效时间:">
<el-date-picker
v-model="form.offerExpiredTime"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</view>
<view class="form-title-wrap">
<view class="goods-info-title">
<view class="form-title">
交易说明
</view>
</view>
</view>
<el-row :gutter="10">
<el-form-item label="报价区域:">
<el-col :span="5">
<el-select v-model="offerProvinceIndex" placeholder="省" @change="selectOfferProvince"
:disabled="form.offerAddressNoLimit">
<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="offerCityIndex" placeholder="市" @change="selectOfferCity"
:disabled="form.offerAddressNoLimit">
<template v-if="offerProvinceIndex !== null">
<el-option v-for="(item, index) in cityData[offerProvinceIndex]" :key="index"
:value="index"
:label="item.name"/>
</template>
</el-select>
</el-col>
<el-col :span="5">
<el-select v-model="offerAreaIndex" placeholder="区/县" @change="selectOfferArea"
:disabled="form.offerAddressNoLimit">
<template v-if="offerProvinceIndex !== null && offerCityIndex !== null">
<el-option v-for="(item, index) in areaData[offerProvinceIndex][offerCityIndex]"
:key="index" :value="index"
:label="item.name"/>
</template>
</el-select>
</el-col>
<el-col :span="5">
<el-checkbox v-model="form.offerAddressNoLimit" @change="changeOfferAddressNoLimit">不限区域
</el-checkbox>
</el-col>
</el-form-item>
</el-row>
<el-form-item label="付款方式:">
<view class="flex justify-start items-center">
<view class="flex justify-start items-center mr-35">
<el-radio label="预付" v-model="form.payMethod">
<text>预付</text>
</el-radio>
<el-input v-model="form.prePayRate" style="width: 200px"/>
<text>%货到付全款</text>
</view>
<el-radio label="提货付全款" v-model="form.payMethod">
<text>提货付全款</text>
</el-radio>
</view>
<view class="flex justify-start items-center mt-40">
<el-radio label="其他付款方式描述" v-model="form.payMethod">
<text>其他付款方式描述</text>
</el-radio>
<el-input v-model="form.otherPayMethodDesc"
type="textarea" show-word-limit maxlength="300"/>
</view>
</el-form-item>
<el-form-item label="报价形式:">
<el-radio label="整单报价" v-model="form.offerType">
<text>整单报价</text>
</el-radio>
<el-radio label="可分项报价" v-model="form.offerType">
<text>可分项报价</text>
</el-radio>
</el-form-item>
<view class="form-title-wrap">
<view class="goods-info-title">
<view class="form-title">
简易合同备注和其他补充条款
</view>
</view>
</view>
<view class="p-30">
<view class="mb-20 flex justify-start items-center">
<el-radio v-model="form.signMethod" :label="0">法大大</el-radio>
<el-radio v-model="form.signMethod" :label="1">线下签约</el-radio>
</view>
<view v-if="form.signMethod === 0">
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">违约责任:</view>
<view class="border-left m-10 pl-20 flex-1">
1.
乙方所交产品品种、型号、规格、质量不符合规定的,如果甲方同意利用,应当按质论价;如果甲方不能利用的,应根据产品的具体情况,由乙方负责包换或包修,并承担修理、调换或退货而支付的实际费用;
2.乙方不予供货违约责任为甲方的实际损失+违约金,如乙方材料符合订货标准,甲方不能退货和不收货,甲方无条件应按实际本合同订货数量支付100%货款,并支付乙方因此产生的实际费用。带有甲乙双方单位相关收货人和发货人签字的本合同的发货清单事项和内容均视为本合同的补充合同,与本合同有相同的法律效力,双方应共同遵照执行。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">解决纠纷的方法:</view>
<view class="border-left m-10 pl-20 flex-1">
1、凡因本合同引起的或与本合同有关的任何争议,均可友好协商或仲裁解决,协商或仲裁不成的,双方协商同意在合同签订地人民法院管辖地起诉,违约一方或对合同争议承担主要责任的一方,应承担对方因仲裁和起诉而产生的全部律师代理费、鉴定(检验)费、诉讼保全费、诉讼保险费、公告费、差旅费、执行费、误工费和获取证据产生费用等其他相关费用。
2、双方本合同相关权利放弃均应有双方书面作出并加盖公章或授权委托人签字后生效。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">不可抗力:</view>
<view class="border-left m-10 pl-20 flex-1">
甲乙双方的任何一方由于不可抗力或突发公共事件的原因不能履行合同时,应及时向对方通报不能履行或不能完全履行的理由,以减轻可能给对方造成的损失,在取得有关机构证明以后,允许延期履行、部分履行或者不履行合同,并根据情况可部分或全部免予承担违约责任。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">其他:</view>
<view class="border-left m-10 pl-20 flex-1">
本合同的全部内容由双方平等共同协商一致,共同起草制定,非一方事先拟定,不属于格式条款。本合同自双方签字盖章后生效(包括电子签字、盖章),按本合同内容地址、联系方式寄送的一切文书、函件送达与否,均为视为送达有法律效力,通知途径和本合同内联系方式或地址送达文件双方均予以验证。
</view>
</view>
<view class="flex justify-start items-start border">
<view class="m-10 sign-method-header">采购方补充条款:</view>
<view class="border-left m-10 pl-20 flex-1">
供货方逾期供货承担采购方一切损失
</view>
</view>
</view>
</view>
<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.buyer.companyName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司联系方式">
<el-input v-model="form.buyer.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.buyer.personalName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="个人联系方式">
<el-input v-model="form.buyer.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.buyer.managerName"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="授权联系方式">
<el-input v-model="form.buyer.managerContract"/>
</el-form-item>
</el-col>
</el-row>
<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>
</view>
</template>
<script>
import provinces from "@/uni_modules/vk-uview-ui/libs/address/provinces.json";
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_2",
data() {
return {
provinceData: provinces,
cityData: citys,
areaData: areas,
form: {
type: 2,
category: 0,
files: [],
title: '',
desc: '',
addressRegion: [],
addressDetail: '',
deliverAddressRegion: [],
deliverAddressDetail: '',
invoice: false,
writeInvoiceTime: '',
invoiceType: '',
invoiceOther: '',
invoiceDetail: '',
expiredTime: '',
offerExpiredTime: '',
offerAddressRegion: [],
offerAddressNoLimit: false,
payMethod: '预付',
offerType: '整单报价',
prePayRate: '',
otherPayMethodDesc: '',
signMethod: 0,
buyer: {
companyName: '',
contract: '',
personalName: '',
personalContract: '',
managerName: '',
managerContract: '',
},
supplier: {
companyName: '',
contract: '',
personalName: '',
personalContract: '',
managerName: '',
managerContract: '',
},
},
provinceIndex: null,
cityIndex: null,
areaIndex: null,
deliverProvinceIndex: null,
deliverCityIndex: null,
deliverAreaIndex: null,
offerProvinceIndex: null,
offerCityIndex: null,
offerAreaIndex: null,
checked: '否'
}
},
methods: {
selectProvince(index) {
this.form.addressRegion[0] = this.provinceData[index]
},
selectCity(index) {
this.form.addressRegion[1] = this.cityData[this.provinceIndex][index]
},
selectArea(index) {
this.form.addressRegion[2] = this.areaData[this.provinceIndex][this.cityIndex][index]
},
selectDeliverProvince(index) {
this.form.deliverAddressRegion[0] = this.provinceData[index]
},
selectDeliverCity(index) {
this.form.deliverAddressRegion[1] = this.cityData[this.deliverProvinceIndex][index]
},
selectDeliverArea(index) {
this.form.deliverAddressRegion[2] = this.areaData[this.deliverProvinceIndex][this.deliverCityIndex][index]
},
selectOfferProvince(index) {
this.form.offerAddressRegion[0] = this.provinceData[index]
},
selectOfferCity(index) {
this.form.offerAddressRegion[1] = this.cityData[this.offerProvinceIndex][index]
},
selectOfferArea(index) {
this.form.offerAddressRegion[2] = this.areaData[this.offerProvinceIndex][this.offerCityIndex][index]
},
changeOfferAddressNoLimit(val) {
if (val) {
this.form.offerAddressRegion = []
this.offerProvinceIndex = this.offerCityIndex = this.offerAreaIndex = null
}
},
async publish() {
await vk.callFunction({
url: 'client/old/kh/add',
data: this.form
})
this.$message({
message: "提交成功",
type: 'success'
})
vk.navigateBack()
}
}
}
</script>
<style lang="scss" scoped>
@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: flex-start;
}
.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;
}
</style>
<style>
/deep/ .input-with-select{
width: 200px;
}
/deep/ .input-with-select .el-input-group__append {
background-color: #fff !important;
width: 80px !important;
}
</style>
+235
View File
@@ -0,0 +1,235 @@
<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>
</view>
</template>
<script>
import provinces from "@/uni_modules/vk-uview-ui/libs/address/provinces.json";
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: '否'
}
},
methods: {
selectProvince(index) {
this.form.addressRegion[0] = this.provinceData[index]
},
selectCity(index) {
this.form.addressRegion[1] = this.cityData[this.provinceIndex][index]
},
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()
}
}
}
</script>
<style lang="scss" scoped>
@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: flex-start;
}
.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;
}
</style>
<style>
/deep/ .input-with-select{
width: 200px;
}
/deep/ .input-with-select .el-input-group__append {
background-color: #fff !important;
width: 80px !important;
}
</style>
File diff suppressed because it is too large Load Diff