|
@@ -18,7 +18,7 @@
|
|
{ label: '家装', value: 'HOME' }
|
|
{ label: '家装', value: 'HOME' }
|
|
]"
|
|
]"
|
|
:key="item.value"
|
|
:key="item.value"
|
|
- :label="item.label"
|
|
|
|
|
|
+ :label="item.value"
|
|
>
|
|
>
|
|
{{ item.label }}
|
|
{{ item.label }}
|
|
</el-radio>
|
|
</el-radio>
|
|
@@ -40,7 +40,7 @@
|
|
<el-col :xs="24" :sm="12" :lg="12" class="item">
|
|
<el-col :xs="24" :sm="12" :lg="12" class="item">
|
|
<div class="label">{{ ['cross'].includes(pageType) ? '业务' : '项目' }}所在区域*:</div>
|
|
<div class="label">{{ ['cross'].includes(pageType) ? '业务' : '项目' }}所在区域*:</div>
|
|
<div class="value">
|
|
<div class="value">
|
|
- <el-select v-model="formData.projectArea" placeholder="请选择" clearable filterable @change="handleService">
|
|
|
|
|
|
+ <el-select v-model="formData.projectArea" placeholder="请选择" clearable filterable>
|
|
<el-option
|
|
<el-option
|
|
v-for="item in commonData.dict['TRADE_PROJECT_AREA']"
|
|
v-for="item in commonData.dict['TRADE_PROJECT_AREA']"
|
|
:key="item.value"
|
|
:key="item.value"
|
|
@@ -123,39 +123,97 @@
|
|
<el-input v-model="formData.followCustomerMobile" placeholder="请填写" size="mini" clearable />
|
|
<el-input v-model="formData.followCustomerMobile" placeholder="请填写" size="mini" clearable />
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col v-if="['frock', 'cross'].includes(pageType)" :xs="24" :sm="24" :lg="8" class="item">
|
|
|
|
|
|
+ <el-col
|
|
|
|
+ v-if="['frock', 'cross'].includes(pageType) && formData.orderType !== 'HOME'"
|
|
|
|
+ :xs="24"
|
|
|
|
+ :sm="24"
|
|
|
|
+ :lg="8"
|
|
|
|
+ class="item"
|
|
|
|
+ >
|
|
<div class="label">工程项目名称*:</div>
|
|
<div class="label">工程项目名称*:</div>
|
|
<div class="value">
|
|
<div class="value">
|
|
<el-input v-model="formData.projectName" placeholder="请填写" size="mini" clearable />
|
|
<el-input v-model="formData.projectName" placeholder="请填写" size="mini" clearable />
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :xs="24" :sm="12" :lg="['home'].includes(pageType)? 12: 8" class="item">
|
|
|
|
|
|
+ <el-col
|
|
|
|
+ :xs="24"
|
|
|
|
+ :sm="12"
|
|
|
|
+ :lg="['home'].includes(pageType) || formData.orderType === 'HOME' ? 12 : 8"
|
|
|
|
+ class="item"
|
|
|
|
+ >
|
|
<div class="label">工程联系人*:</div>
|
|
<div class="label">工程联系人*:</div>
|
|
<div class="value">
|
|
<div class="value">
|
|
<el-input v-model="formData.enginLinkName" placeholder="请填写" size="mini" clearable />
|
|
<el-input v-model="formData.enginLinkName" placeholder="请填写" size="mini" clearable />
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :xs="24" :sm="12" :lg="['home'].includes(pageType)? 12: 8" class="item">
|
|
|
|
|
|
+ <el-col
|
|
|
|
+ :xs="24"
|
|
|
|
+ :sm="12"
|
|
|
|
+ :lg="['home'].includes(pageType) || formData.orderType === 'HOME' ? 12 : 8"
|
|
|
|
+ class="item"
|
|
|
|
+ >
|
|
<div class="label">电话*:</div>
|
|
<div class="label">电话*:</div>
|
|
<div class="value">
|
|
<div class="value">
|
|
<el-input v-model="formData.enginLinkMobile" placeholder="请填写" size="mini" clearable />
|
|
<el-input v-model="formData.enginLinkMobile" placeholder="请填写" size="mini" clearable />
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col v-if="['home'].includes(pageType)" :xs="24" :sm="24" :lg="24" class="item">
|
|
|
|
- <div class="label" style="height: auto;">工程项目名称*:</div>
|
|
|
|
- <div class="value" style="height: 100%;">
|
|
|
|
- <el-radio-group v-model="formData.homeProjectNameRadio" @change="">
|
|
|
|
|
|
+ <el-col
|
|
|
|
+ v-if="['home'].includes(pageType) || formData.orderType === 'HOME'"
|
|
|
|
+ :xs="24"
|
|
|
|
+ :sm="24"
|
|
|
|
+ :lg="24"
|
|
|
|
+ class="item"
|
|
|
|
+ >
|
|
|
|
+ <div class="label" style="height: auto">工程项目名称*:</div>
|
|
|
|
+ <div class="value" style="height: 100%">
|
|
|
|
+ <el-radio-group v-model="formData.homeProjectNameRadio">
|
|
<el-radio label="AREA">
|
|
<el-radio label="AREA">
|
|
- <el-input v-model="formData.homeProjectNameArea" class="my-width" placeholder="请填写" size="mini" clearable />小区
|
|
|
|
- <el-input v-model="formData.homeProjectNameSeat" class="my-width" placeholder="请填写" size="mini" clearable />座
|
|
|
|
- <el-input v-model="formData.homeProjectNameNumber" class="my-width" placeholder="请填写" size="mini" clearable />号
|
|
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="formData.homeProjectNameArea"
|
|
|
|
+ class="my-width"
|
|
|
|
+ placeholder="请填写"
|
|
|
|
+ size="mini"
|
|
|
|
+ clearable
|
|
|
|
+ />小区
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="formData.homeProjectNameSeat"
|
|
|
|
+ class="my-width"
|
|
|
|
+ placeholder="请填写"
|
|
|
|
+ size="mini"
|
|
|
|
+ clearable
|
|
|
|
+ />座
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="formData.homeProjectNameNumber"
|
|
|
|
+ class="my-width"
|
|
|
|
+ placeholder="请填写"
|
|
|
|
+ size="mini"
|
|
|
|
+ clearable
|
|
|
|
+ />号
|
|
</el-radio>
|
|
</el-radio>
|
|
<el-radio label="SELF">
|
|
<el-radio label="SELF">
|
|
- <el-input v-model="formData.homeProjectNameArea" class="my-width" placeholder="请填写" size="mini" clearable />小区
|
|
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="formData.homeProjectNameArea2"
|
|
|
|
+ class="my-width"
|
|
|
|
+ placeholder="请填写"
|
|
|
|
+ size="mini"
|
|
|
|
+ clearable
|
|
|
|
+ />小区
|
|
</el-radio>
|
|
</el-radio>
|
|
<el-radio label="VILLA">
|
|
<el-radio label="VILLA">
|
|
- <el-input v-model="formData.homeProjectNameArea" class="my-width" placeholder="请填写" size="mini" clearable />小区
|
|
|
|
- <el-input v-model="formData.homeProjectNameNumber" class="my-width" placeholder="请填写" size="mini" clearable />号别墅
|
|
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="formData.homeProjectNameArea3"
|
|
|
|
+ class="my-width"
|
|
|
|
+ placeholder="请填写"
|
|
|
|
+ size="mini"
|
|
|
|
+ clearable
|
|
|
|
+ />小区
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="formData.homeProjectNameNumber3"
|
|
|
|
+ class="my-width"
|
|
|
|
+ placeholder="请填写"
|
|
|
|
+ size="mini"
|
|
|
|
+ clearable
|
|
|
|
+ />号别墅
|
|
</el-radio>
|
|
</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</div>
|
|
</div>
|
|
@@ -181,22 +239,24 @@
|
|
<div class="label">详细地址</div>
|
|
<div class="label">详细地址</div>
|
|
<div class="value">
|
|
<div class="value">
|
|
<el-input v-model="formData.address" placeholder="请填写" size="mini" clearable />
|
|
<el-input v-model="formData.address" placeholder="请填写" size="mini" clearable />
|
|
- <geographicalPosi v-if="module !== 'detail'" :form-data="formData" @on-select-posi="handleSelectPosi" />
|
|
|
|
- </div>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- <el-col :xs="24" :sm="24" :lg="24" class="item" style="height: 400px">
|
|
|
|
- <div class="label" style="height: auto">地图位置</div>
|
|
|
|
- <div class="value" style="height: auto; padding: 0">
|
|
|
|
- <zj-amap-polygon
|
|
|
|
- eid="bMap"
|
|
|
|
- :zoom="zoom"
|
|
|
|
- :center="center"
|
|
|
|
- :markers="markers"
|
|
|
|
- :electronic-fence="electronicFence"
|
|
|
|
- @getPolygons="getPolygons"
|
|
|
|
- />
|
|
|
|
- </div>
|
|
|
|
- </el-col> -->
|
|
|
|
|
|
+ <geographicalPosi v-if="module !== 'detail'" :form-data="formData" @selectPosi="handleSelectPosi" />
|
|
|
|
+ </div>
|
|
|
|
+ </el-col>
|
|
|
|
+ <template v-if="isTradeExaminer">
|
|
|
|
+ <el-col v-if="module !== 'add'" :xs="24" :sm="24" :lg="24" class="item" style="height: 400px">
|
|
|
|
+ <div class="label" style="height: auto">地图位置</div>
|
|
|
|
+ <div class="value" style="height: auto; padding: 0">
|
|
|
|
+ <zj-amap-polygon
|
|
|
|
+ eid="bMap"
|
|
|
|
+ :zoom="zoom"
|
|
|
|
+ :center="center"
|
|
|
|
+ :markers="markers"
|
|
|
|
+ :electronic-fence="electronicFence"
|
|
|
|
+ @getPolygons="getPolygons"
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
|
|
+ </el-col>
|
|
|
|
+ </template>
|
|
<el-col :xs="24" :sm="24" :lg="24" class="item">
|
|
<el-col :xs="24" :sm="24" :lg="24" class="item">
|
|
<div class="label">项目类别*:</div>
|
|
<div class="label">项目类别*:</div>
|
|
<div class="value">
|
|
<div class="value">
|
|
@@ -210,8 +270,8 @@
|
|
<el-col :xs="24" :sm="12" :lg="12" class="item">
|
|
<el-col :xs="24" :sm="12" :lg="12" class="item">
|
|
<div class="label">图纸上传:</div>
|
|
<div class="label">图纸上传:</div>
|
|
<div class="value" style="justify-content: flex-end">
|
|
<div class="value" style="justify-content: flex-end">
|
|
- <FileUpload v-if="module !== 'detail'" :file-list="fileList" size="mini" :limit="1" class="file" />
|
|
|
|
- <el-input v-model="formData.drawUpload" disabled size="mini" clearable />
|
|
|
|
|
|
+ <FileUpload :file-list="formData.fileList" size="mini" :limit="1" class="file" />
|
|
|
|
+ <!-- <el-input v-model="formData.drawUpload" size="mini" clearable /> -->
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :xs="24" :sm="12" :lg="12" class="item">
|
|
<el-col :xs="24" :sm="12" :lg="12" class="item">
|
|
@@ -354,9 +414,10 @@
|
|
import { findElem } from '@/utils/util'
|
|
import { findElem } from '@/utils/util'
|
|
import { getRegion } from '@/api/sales'
|
|
import { getRegion } from '@/api/sales'
|
|
import { getTradeConfigList } from '@/api/basic_data/sectorAllocation'
|
|
import { getTradeConfigList } from '@/api/basic_data/sectorAllocation'
|
|
-
|
|
|
|
import GeographicalPosi from './geographicalPosi.vue'
|
|
import GeographicalPosi from './geographicalPosi.vue'
|
|
import FileUpload from '@/components/Common/file-upload.vue'
|
|
import FileUpload from '@/components/Common/file-upload.vue'
|
|
|
|
+import { mapGetters } from 'vuex'
|
|
|
|
+
|
|
export default {
|
|
export default {
|
|
components: {
|
|
components: {
|
|
FileUpload,
|
|
FileUpload,
|
|
@@ -395,13 +456,7 @@ export default {
|
|
zoom: 16,
|
|
zoom: 16,
|
|
// 地图默认中心
|
|
// 地图默认中心
|
|
center: [113.36242, 23.1368425],
|
|
center: [113.36242, 23.1368425],
|
|
- markers: [
|
|
|
|
- {
|
|
|
|
- id: '',
|
|
|
|
- name: '',
|
|
|
|
- center: ['', ''] // [row.workerLng, row.workerLat]
|
|
|
|
- }
|
|
|
|
- ],
|
|
|
|
|
|
+ markers: [],
|
|
// 是否启用电子围栏
|
|
// 是否启用电子围栏
|
|
electronicFence: false,
|
|
electronicFence: false,
|
|
provinceList: [],
|
|
provinceList: [],
|
|
@@ -412,9 +467,34 @@ export default {
|
|
tradeList: []
|
|
tradeList: []
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ computed: {
|
|
|
|
+ ...mapGetters(['isTradeExaminer'])
|
|
|
|
+ },
|
|
|
|
+ watch: {
|
|
|
|
+ async 'formData.id'(newValue, oldValue) {
|
|
|
|
+ if (newValue) {
|
|
|
|
+ if (this.commonData.vicinityMarkers.length) {
|
|
|
|
+ this.markers = this.commonData.vicinityMarkers.map(k => {
|
|
|
|
+ return {
|
|
|
|
+ id: '',
|
|
|
|
+ name: k.projectName,
|
|
|
|
+ center: [k.lnt, k.lat]
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ this.getTradeConfigList(this.formData.tradeParentId)
|
|
|
|
+ await this.getCallbackPosition(0, this.formData.provinceId, 'province', 'id')
|
|
|
|
+ await this.getCallbackPosition(this.formData.provinceId, this.formData.cityId, 'city', 'id')
|
|
|
|
+ await this.getCallbackPosition(this.formData.cityId, this.formData.areaId, 'area', 'id')
|
|
|
|
+ await this.getCallbackPosition(this.formData.areaId, this.formData.streetId, 'street', 'id')
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
created() {
|
|
created() {
|
|
- this.getRegion()
|
|
|
|
this.getTradeConfigList()
|
|
this.getTradeConfigList()
|
|
|
|
+ if (this.module === 'add') {
|
|
|
|
+ this.getRegion()
|
|
|
|
+ }
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
// 获取省市区街道
|
|
// 获取省市区街道
|
|
@@ -422,8 +502,10 @@ export default {
|
|
getRegion({ pid: id }).then(res => {
|
|
getRegion({ pid: id }).then(res => {
|
|
if (level === 0) {
|
|
if (level === 0) {
|
|
this.provinceList = res.data
|
|
this.provinceList = res.data
|
|
|
|
+ this.getPosition(res.data, 'provinceId', 'province')
|
|
} else if (level === 1) {
|
|
} else if (level === 1) {
|
|
this.cityList = res.data
|
|
this.cityList = res.data
|
|
|
|
+ this.getPosition(res.data, 'cityId', 'city')
|
|
} else if (level === 2) {
|
|
} else if (level === 2) {
|
|
this.areaList = res.data
|
|
this.areaList = res.data
|
|
} else if (level === 3) {
|
|
} else if (level === 3) {
|
|
@@ -431,6 +513,18 @@ export default {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
+ getPosition(data, id, name) {
|
|
|
|
+ if (this.module === 'add') {
|
|
|
|
+ const item = data.find(k => k.name === this.$IpAdd[name])
|
|
|
|
+ this.formData[id] = item.id
|
|
|
|
+ this.formData[name] = item.name
|
|
|
|
+ if (name === 'province') {
|
|
|
|
+ this.getRegion(1, item.id)
|
|
|
|
+ } else {
|
|
|
|
+ this.getRegion(2, item.id)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
handleArea(value, type) {
|
|
handleArea(value, type) {
|
|
this.formData[type] = this[type + 'List'].find(k => k.id === value).name
|
|
this.formData[type] = this[type + 'List'].find(k => k.id === value).name
|
|
},
|
|
},
|
|
@@ -556,15 +650,31 @@ export default {
|
|
getPolygons(data) {
|
|
getPolygons(data) {
|
|
console.log(data)
|
|
console.log(data)
|
|
},
|
|
},
|
|
- handleSelectPosi(data) {
|
|
|
|
- this.formData.lng = data.center[0]
|
|
|
|
|
|
+ async handleSelectPosi(data) {
|
|
|
|
+ this.formData.lnt = data.center[0]
|
|
this.formData.lat = data.center[1]
|
|
this.formData.lat = data.center[1]
|
|
- console.log(this.formData, 9999)
|
|
|
|
-
|
|
|
|
|
|
+ this.formData.positionAddress = data.name
|
|
var { province, city, district, township } = data.data.addressComponent
|
|
var { province, city, district, township } = data.data.addressComponent
|
|
- var { lbsId, name } = this.sheng.find(item => item.name === province)
|
|
|
|
- this.formData.provinceId = lbsId
|
|
|
|
- this.formData.province = name
|
|
|
|
|
|
+ const area = district
|
|
|
|
+ const street = township
|
|
|
|
+ await this.getCallbackPosition(0, province, 'province')
|
|
|
|
+ await this.getCallbackPosition(this.formData.provinceId, city, 'city')
|
|
|
|
+ await this.getCallbackPosition(this.formData.cityId, area, 'area')
|
|
|
|
+ await this.getCallbackPosition(this.formData.areaId, street, 'street')
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @param {*} id // 父级id
|
|
|
|
+ * @param {*} value // 值
|
|
|
|
+ * @param {*} name // 字段名称
|
|
|
|
+ * @param {*} way // 筛选属性,默认name
|
|
|
|
+ */
|
|
|
|
+ async getCallbackPosition(id = 0, value = '', name, way = 'name') {
|
|
|
|
+ const { data } = await getRegion({ pid: id })
|
|
|
|
+ this[name + 'List'] = data
|
|
|
|
+ const temp = data.find(k => k[way] == value)
|
|
|
|
+ this.formData[name] = temp && temp.name
|
|
|
|
+ this.formData[name + 'Id'] = temp && temp.id
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -595,15 +705,15 @@ export default {
|
|
::v-deep .file .is-success {
|
|
::v-deep .file .is-success {
|
|
margin-top: 0;
|
|
margin-top: 0;
|
|
}
|
|
}
|
|
-.my-width{
|
|
|
|
|
|
+.my-width {
|
|
width: 150px;
|
|
width: 150px;
|
|
}
|
|
}
|
|
-.title{
|
|
|
|
|
|
+.title {
|
|
display: flex;
|
|
display: flex;
|
|
- justify-content: space-between;
|
|
|
|
- .title-right{
|
|
|
|
- font-size: 16px;
|
|
|
|
- font-weight: 300;
|
|
|
|
- }
|
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ .title-right {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ font-weight: 300;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|