Explorar o código

Merge branch 'pengyouhao_dev'

pengyh hai 1 ano
pai
achega
9b74e3f87d

+ 9 - 0
src/api/tenancyOrder.js

@@ -88,4 +88,13 @@ export function getTypeList(data) {
     method: 'post',
     data
   })
+}
+
+// 报修
+export function getUserList(data) {
+  return request({
+    url: '/member/list/customer',
+    method: 'post',
+    data
+  })
 }

+ 124 - 19
src/views/mallManagement/tenancyManagement/tenancyOrder/detail.vue

@@ -22,10 +22,7 @@
 								<div class="order-main-opt-btn">
 									<el-button v-if="formData.status === 'WAIT'" type="primary" @click="submitOrder()"
 										style="margin-right: 10px">确定租赁</el-button>
-									<el-popconfirm :title="formData.status === 'LEASE'?'订单未到期,是否提前回收?':'确定回收订单吗?'" @confirm="isRecover = true" v-if="formData.status === 'LEASE' || formData.status === 'OVER'">
-										<el-button type="primary" slot="reference"
-											style="margin-right: 10px">确认回收</el-button>
-									</el-popconfirm>
+									<el-button v-if="formData.status === 'LEASE' || formData.status === 'OVER'" @click="isRecover = true" type="primary" slot="reference" style="margin-right: 10px">确认回收</el-button>
 									<el-popconfirm title="确定取消订单吗?" @confirm="cancelOrder()"
 										v-if="formData.status === 'WAIT'">
 										<el-button slot="reference" type="info" plain
@@ -66,28 +63,75 @@
 						</el-col>
 						<el-col :span="8">
 							<el-form-item label="客户联系电话" prop="userMobile" :required="true">
-								<el-input type="text" :disabled="formType!=0 && formData.status != 'WAIT'"
-									v-model="formData.userMobile" placeholder="请输入"></el-input>
+								<zj-select v-model="formData.userInfo" blurNoMatchInputBorderColor="" :blurNoMatchText="true" :filter-method="userMobileInput" :disabled="formType!=0 && formData.status != 'WAIT'" value-key="userId" filterable @change="changeUser" @blur="userBlur" placeholder="请选择" style="width: 100%;">
+								    <zj-option
+								      v-for="item in userList"
+								      :key="item.userId"
+								      :label="item.mobile+'('+item.nickName+')'"
+								      :value="item">
+								    </zj-option>
+								  </zj-select>
 							</el-form-item>
 						</el-col>
 						<el-col :span="24">
 							<el-form-item label="客户地址" class="is-required">
 								<el-row>
 									<el-col :span="5" style="margin-right: 12px;">
-										<el-input type="text" v-model="formData.province" disabled
-											placeholder="请选择省"></el-input>
+										<el-select v-model="formData.provinceObj" :disabled="formType!=0 && formData.status != 'WAIT'" filterable value-key="id" placeholder="请选择"
+											@change="(val) => {
+												formData.provinceId = val.id
+												formData.province = val.name
+												formData.cityObj = null
+												formData.cityId = ''
+												formData.city = ''
+												formData.areaObj = null
+												formData.areaId = ''
+												formData.area = ''
+												formData.streetObj = null
+												formData.streetId = ''
+												formData.street = ''
+												this.lbsAmapRegion('cityList',val.id)
+											}">
+											<el-option v-for="(item,index) in provinceList" :key="index" :label="item.name" :value="item"></el-option>
+										</el-select>
 									</el-col>
 									<el-col :span="5" style="margin-right: 12px;">
-										<el-input type="text" v-model="formData.city" disabled
-											placeholder="请选择市"></el-input>
+										<el-select v-model="formData.cityObj" :disabled="formType!=0 && formData.status != 'WAIT'" filterable value-key="id" placeholder="请选择"
+											@change="(val) => {
+												formData.cityId = val.id
+												formData.city = val.name
+												formData.areaObj = null
+												formData.areaId = ''
+												formData.area = ''
+												formData.streetObj = null
+												formData.streetId = ''
+												formData.street = ''
+												this.lbsAmapRegion('areaList',val.id)
+											}">
+											<el-option v-for="(item,index) in cityList" :key="index" :label="item.name" :value="item"></el-option>
+										</el-select>
 									</el-col>
 									<el-col :span="5" style="margin-right: 12px;">
-										<el-input type="text" v-model="formData.area" disabled
-											placeholder="请选择区"></el-input>
+										<el-select v-model="formData.areaObj" :disabled="formType!=0 && formData.status != 'WAIT'" filterable value-key="id" placeholder="请选择"
+											@change="(val) => {
+												formData.areaId = val.id
+												formData.area = val.name
+												formData.streetObj = null
+												formData.streetId = ''
+												formData.street = ''
+												this.lbsAmapRegion('streetList',val.id)
+											}">
+											<el-option v-for="(item,index) in areaList" :key="index" :label="item.name" :value="item"></el-option>
+										</el-select>
 									</el-col>
 									<el-col :span="8">
-										<el-input type="text" v-model="formData.street" disabled
-											placeholder="请选择街道"></el-input>
+										<el-select v-model="formData.streetObj" :disabled="formType!=0 && formData.status != 'WAIT'" filterable value-key="id" placeholder="请选择"
+											@change="(val) => {
+												formData.streetId = val.id
+												formData.street = val.name
+											}">
+											<el-option v-for="(item,index) in streetList" :key="index" :label="item.name" :value="item"></el-option>
+										</el-select>
 									</el-col>
 								</el-row>
 							</el-form-item>
@@ -101,8 +145,8 @@
 											placeholder="详细地址"></el-input>
 									</el-col>
 									<el-col :span="2">
-										<geographicalPosi :disabled="formType!=0 && formData.status != 'WAIT'"
-											:formData="this.formData" @selectPosi="selectAddress" />
+										<!-- <geographicalPosi :disabled="formType!=0 && formData.status != 'WAIT'"
+											:formData="this.formData" @selectPosi="selectAddress" /> -->
 									</el-col>
 								</el-row>
 							</el-form-item>
@@ -118,6 +162,18 @@
 								<ImageUpload :fileList="formData.fileUrl" :limit="1" :isEdit="formType==0 || formData.status == 'WAIT'" />
 							</el-form-item>
 						</el-col>
+						<template v-if="formData.status == 'RECOVER'">
+							<el-col :span="8">
+								<el-form-item label="回收操作人" prop="recoverBy">
+									<el-input type="text" disabled v-model="formData.recoverBy" placeholder="请输入"></el-input>
+								</el-form-item>
+							</el-col>
+							<el-col :span="8">
+								<el-form-item label="回收操作时间" prop="recoverTime">
+									<el-input type="text" disabled v-model="formData.recoverTime" placeholder="请输入"></el-input>
+								</el-form-item>
+							</el-col>
+						</template>
 					</el-row>
 				</el-form>
 			</div>
@@ -340,7 +396,7 @@
 	import {
 		getGoods,
 		getDetail,
-		add,confirmOrder,confirmRecover,confirmRelet,confirmRepair,getTypeList
+		add,confirmOrder,confirmRecover,confirmRelet,confirmRepair,getTypeList,getUserList
 	} from "@/api/tenancyOrder";
 	export default {
 		components: {
@@ -366,20 +422,27 @@
 					date: ''
 				},
 				goodsList: [],
+				userList: [],
 				is_submit: true,
 				isRelet: false,
 				isRepair: false,
 				isRecover: false,
 				formData: {
+					userInfo: null,
 					userName: '',
+					userId: '',
 					userMobile: '',
 					remark: '',
+					provinceObj: null,
 					province: '',
 					provinceId: '',
+					cityObj: null,
 					city: '',
 					cityId: '',
+					areaObj: null,
 					area: '',
 					areaId: '',
+					streetObj: null,
 					street: '',
 					streetId: '',
 					address: '',
@@ -415,6 +478,12 @@
 							pattern: /^((0\d{2,3}-\d{7,8})|(1[3456789]\d{9}))$/,
 							message: '电话号码格式不正确',
 							trigger: 'blur'
+						},
+						,
+						{
+							pattern: /^((0\d{2,3}-\d{7,8})|(1[3456789]\d{9}))$/,
+							message: '电话号码格式不正确',
+							trigger: 'change'
 						}
 					],
 					userName: [{
@@ -456,10 +525,11 @@
 		created() {
 			if (this.id) {
 				this.getDetail()
+				this.getinitlbslist()
 			}
+			this.lbsAmapRegion('provinceList',0)
 			this.getGoods()
 			this.getTypeList()
-			this.getinitlbslist()
 		},
 		methods: {
 			// 返回
@@ -473,7 +543,11 @@
 					this.formData = {
 						...res.data,
 						address: res.data.userAddress,
-						fileUrl: res.data.fileUrl?[{url: res.data.fileUrl}]:[]
+						fileUrl: res.data.fileUrl?[{url: res.data.fileUrl}]:[],
+						provinceObj: {id: res.data.provinceId},
+						cityObj: {id: res.data.cityId},
+						areaObj: {id: res.data.areaId},
+						streetObj: {id: res.data.streetId}
 					}
 					this.formData3.dataList = res.data.items
 				})
@@ -487,6 +561,25 @@
 					this.goodsList = res.data.records
 				})
 			},
+			getUserList(value){
+				getUserList({
+					pageNum: 1,
+					pageSize: -1,
+					params: [{param: "a.mobile", compare: "like", value}]
+				}).then(res => {
+					this.userList = res.data.records
+				})
+			},
+			userBlur(e){
+				this.formData.userMobile = e.target.value
+				this.formData.userInfo = e.target.value
+				this.$forceUpdate()
+			},
+			changeUser(e){
+				this.formData.userMobile = e.mobile
+				this.formData.userName = e.nickName
+				this.formData.userId = e.userId
+			},
 			changeGoods(e, item) {
 				item.categoryId = e.categoryId
 				item.categoryName = e.categoryName
@@ -495,6 +588,11 @@
 				item.goodsLeaseId = e.id
 				item.goodsUnit = e.unit
 			},
+			userMobileInput(e){
+				if(e && e.length > 3){
+					this.getUserList(e)
+				}
+			},
 			add() {
 				this.$refs.formData1.validate((valid, invalidFields, errLabels) => {
 					if (valid) {
@@ -533,6 +631,7 @@
 							this.$refs.formData1.validate((valid, invalidFields, errLabels) => {
 								if (valid) {
 									add({
+										userId: this.formData.userId,
 										userName: this.formData.userName,
 										userMobile: this.formData.userMobile,
 										fileUrl: this.formData.fileUrl.length > 0 ? this.formData.fileUrl[0].url : '',
@@ -627,6 +726,7 @@
 					mainId: this.formData.items[0].categoryId,
 					mainName: this.formData.items[0].categoryName,
 					num: this.formData.items[0].qty,
+					imgUrl: this.formData.items[0].categoryUrl
 				}]
 				
 				this.$refs.repairForm.validate((valid, invalidFields, errLabels) => {
@@ -691,6 +791,11 @@
 					}
 				})
 			},
+			lbsAmapRegion(name,pid){
+				lbsAmapRegion({ pid }).then(res => {
+				  this[name] = res.data
+				})
+			},
 			getinitlbslist() {
 				// 初始化请求省市区街道下拉选项数据
 				lbsAmapRegion({

+ 2 - 1
src/views/mallManagement/tenancyManagement/tenancyOrder/index.vue

@@ -85,7 +85,7 @@
 						<span><b>订单号</b>:{{ order.id }}</span>
 						<span><b>下单时间</b>:{{ order.createTime }}</span>
 						<span v-if="order.startDate"><b>起租时间</b>:{{ order.startDate }}</span>
-						<span v-if="order.endDate"><b>结束时间</b>:{{ order.endDate }}</span>
+						<span v-if="order.endDate"><b>结束时间</b>:{{ order.realEndDate || order.endDate }}</span>
 						<el-tag effect="dark" :type="order.payType=='LINE'?'':'success'">{{order.payType=="LINE"?'线下支付':'微信支付'}}</el-tag>
 						<div class="fr">
 							<el-link type="primary" v-if="$restrict('detail')" :underline="false"
@@ -279,6 +279,7 @@
 					res.data.records.forEach(item => {
 						item.startDate = item.startDate?.substring(0,10)
 						item.endDate = item.endDate?.substring(0,10)
+						item.realEndDate = item.realEndDate?.substring(0,10)
 						// item.websitName = this.handleText(item.websitName);
 					});
 					this.dataList = res.data.records;

+ 3 - 3
src/views/mallManagement/tenancyManagement/tenancyProduct/index.vue

@@ -36,7 +36,7 @@
 										</el-form-item>
 									</el-col>
 									<el-col :xs="12" :sm="12" :lg="8">
-										<el-form-item label="租赁金:" label-width="90px">
+										<el-form-item label="租赁金:" label-width="90px">
 											<el-input v-model="screenForm.price1" size="small" @change="getListByScreen"
 												clearable></el-input>
 											<span>至</span>
@@ -75,8 +75,8 @@
 						</el-table-column>
 						<el-table-column align="center" label="商品ID" prop="id" min-width="200"></el-table-column>
 						<el-table-column align="center" label="商品名称" prop="name" min-width="200"></el-table-column>
-						<el-table-column align="center" label="租赁价格" prop="leasePrice" min-width="200"></el-table-column>
-						<el-table-column align="center" label="租赁定金" prop="depositPrice" min-width="200"></el-table-column>
+						<el-table-column align="center" label="租赁价格(元/月)" prop="leasePrice" min-width="200"></el-table-column>
+						<el-table-column align="center" label="租赁订金(元/月)" prop="depositPrice" min-width="200"></el-table-column>
 						<el-table-column align="center" label="排序" prop="sort" min-width="110" sortable>
 							<template slot-scope="scope">
 								<!-- {{ scope.row.sortNum }} -->