浏览代码

客户管理

LAPTOP-FO2T5SIU\35838 8 月之前
父节点
当前提交
a80596e646

+ 135 - 18
src/views/customerManagement/numberManagement/addCustomer.vue

@@ -8,15 +8,16 @@
             <el-row>
               <el-col :span="3" class="col-txt"><span>小区-分期</span></el-col>
               <el-col :span="9" class="col-input">
-                <el-form-item prop="roomUse">
-                  <el-select v-model="form.roomUse" filterable placeholder="请选择">
-                    <el-option
-                      v-for="item in dc_data.HOUSE_USAGE"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    />
-                  </el-select>
+                <el-form-item>
+                  <el-cascader
+                    ref="findids"
+                    v-model="form.findids"
+                    class="full"
+                    :append-to-body="false"
+                    :options="options"
+                    clearable
+                    @change="handleChange"
+                  />
                 </el-form-item>
               </el-col>
               <el-col :span="3" class="col-txt"><span>选房日</span></el-col>
@@ -45,7 +46,66 @@
                 </el-form-item>
               </el-col>
             </el-row>
-
+            <el-row>
+              <!-- 特殊表单 -->
+              <div v-for="(item, index) in form.dynamicItem" :key="index">
+                <el-row style="margin-top: 10px">
+                  <el-col :span="2" class="col-txt"><span>购房人{{ index + 1 }}</span></el-col>
+                  <el-col :span="4" class="col-input">
+                    <el-form-item :prop="'dynamicItem.' + index + '.name'">
+                      <el-input
+                        v-model="item.name"
+                        placeholder="请填写姓名"
+                      />
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="4" class="col-input">
+                    <el-form-item :prop="'dynamicItem.' + index + '.identityCard'">
+                      <el-input
+                        v-model="item.identityCard"
+                        placeholder="请填写身份证号"
+                      />
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="4" class="col-input">
+                    <el-form-item :prop="'dynamicItem.' + index + '.phone'">
+                      <el-input
+                        v-model="item.phone"
+                        placeholder="请填写手机号"
+                      />
+                    </el-form-item>
+                  </el-col>
+                  <el-col v-if="index !== 0" :span="6" class="col-input">
+                    <el-form-item :prop="'dynamicItem.' + index + '.relationship'">
+                      <el-select
+                        v-model="item.relationship"
+                        placeholder="与1的关系"
+                        filterable
+                        :popper-append-to-body="false"
+                        popper-class="statistic_base"
+                      >
+                        <el-option
+                          v-for="relationship in dc_data.RELATIONSHIP"
+                          :key="relationship.value"
+                          :label="relationship.label"
+                          :value="relationship.value"
+                          :popper-append-to-body="false"
+                          popper-class="statistic_base"
+                        />
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="2" class="col-input">
+                    <el-button v-if="index !== 0" type="danger" size="mini" @click="deleteItem(item, index)">-</el-button>
+                  </el-col>
+                </el-row>
+              </div>
+            </el-row>
+            <el-row>
+              <el-col :span="2" class="col-txt">
+                <el-button size="small" type="text" @click="addItem">+继续添加</el-button>
+              </el-col>
+            </el-row>
           </el-card>
         </el-col>
       </el-row>
@@ -68,31 +128,60 @@ export default {
     mixins: [Base, BaseData],
     data() {
         return {
-            dc_key: [],
-            form: {},
+            dc_key: ['RELATIONSHIP'],
+            form: {
+                dynamicItem: [
+                    {
+                        id: '',
+                        customerManagementId: '',
+                        name: '',
+                        identityCard: '',
+                        phone: '',
+                        relationship: ''
+                    }
+                ]
+            },
             rules: {
 
             },
-            addLoading: false
+            addLoading: false,
+            options: []
         }
     },
     mounted() {
+        this.getTreeSelectData()
     },
     methods: {
         initData(data) {
             this.initDict(this.dc_key).then(res => {
-
+                this.getById(data.id)
             })
         },
+        handleChange(value) {
 
+        },
+        getById(val) {
+            this.baseRequest('getById', { id: val }).then(res => {
+                this.form = res.data
+                this.form.findids = [res.data.groupId, res.data.discId]
+                const json = JSON.parse(res.data.buyerJson)
+            })
+        },
         confirmSubmit: function() {
             const _this = this
             this.$refs.form.validate(valid => {
                 if (valid) {
-                    const soaUrl = 'billAdd'
-                    const extraData = {}
+                    let soaUrl = 'add'
+                    if (_this.form.id) {
+                        soaUrl = 'edit'
+                    }
+                    const extraData = {
+                        groupId: _this.form.findids[0],
+                        discId: _this.form.findids[1],
+                        buyerJson: JSON.stringify(_this.form.dynamicItem)
+                    }
                     const postData = Object.assign({}, _this.form, extraData)
-                    // this.opRecord(postData, soaUrl)
+                    console.log('postData', postData)
                     this.baseRequest(soaUrl, postData).then(res => {
                         if (res.data.code == '200') {
                             _this.$message({
@@ -100,6 +189,11 @@ export default {
                                 type: 'success'
                             })
                             _this.cancel()
+                        } else {
+                            _this.$message({
+                                message: res.msg,
+                                type: 'warning'
+                            })
                         }
                     }).catch(err => {
                         _this.$message({
@@ -116,8 +210,31 @@ export default {
         cancel() {
             this.$emit('cancel')
         },
+        getTreeSelectData: function() {
+            this.baseInfoRequest('getTreeData3', {}).then((res) => {
+                this.options = res.data.data
+            }).catch(() => {
+            })
+        },
+        addItem(length) {
+            this.form.dynamicItem.push({
+                id: '',
+                customerManagementId: '',
+                name: '',
+                identityCard: '',
+                phone: '',
+                relationship: ''
+            })
+        },
+        // 删除方法
+        deleteItem(item, index) {
+            this.form.dynamicItem.splice(index, 1)
+        },
         baseRequest(opUrl, postData) {
-            return this.$channel.globeRequest('BillManagementController', opUrl, postData, 'project')
+            return this.$channel.globeRequest('CustomerManagementController', opUrl, postData, 'project')
+        },
+        baseInfoRequest: function(opUrl, postData) {
+            return this.$channel.baseRequest('ParkInfoController', opUrl, postData, 'User')
         }
 
     }

+ 22 - 8
src/views/customerManagement/numberManagement/index.vue

@@ -83,10 +83,10 @@
           />
           <el-table-column type="index" label="序号" width="60" />
           <el-table-column label="小区-分期" prop="groupDiscName" width="180" />
-          <el-table-column label="批次号" prop="" />
-          <el-table-column label="选房号" prop="" />
+          <el-table-column label="批次号" prop="batchNumber" />
+          <el-table-column label="选房号" prop="roomSelectionNumber" />
           <el-table-column label="买受人" prop="buyerName" width="300" />
-          <el-table-column label="选房日期" prop="" width="180" />
+          <el-table-column label="选房日期" prop="roomSelectionDate" width="180" />
           <el-table-column label="购房状态" prop="statusStr" />
           <el-table-column label="意向房屋" prop="houseName" width="180" />
           <el-table-column label="操作" width="180">
@@ -95,7 +95,7 @@
                 size="mini"
                 type="text"
                 @click="handleEdit(scope.row)"
-              >应收调整
+              >修改
               </el-button>
             </template>
           </el-table-column>
@@ -123,7 +123,10 @@
       title="新增"
       width="90%"
       top="20px"
-      append-to-body
+      class="statistic_base"
+      :append-to-body="true"
+      :modal-append-to-body="true"
+      custom-class="tagdialog"
       @close="getData"
     >
       <add-customer v-if="dialogAddVisible" ref="addCustomer" @cancel="cancel" />
@@ -179,6 +182,10 @@ export default {
             }).catch(() => {
             })
         },
+        getItemJson: function(item) {
+            item.statusStr = this.dc_map.BUYING_HOUSE_STATUS[item.status]
+            return item
+        },
         handleSearch() {
             this.getData()
         },
@@ -191,7 +198,6 @@ export default {
             this.handleSearch()
         },
         handleAdd() {
-            // 新增账单
             this.dialogAddVisible = true
             // 新vue时调用的方法
             this.$nextTick(() => {
@@ -206,9 +212,14 @@ export default {
         },
         /* 编辑*/
         handleEdit: function(val) {
-
+            this.dialogAddVisible = true
+            // 新vue时调用的方法
+            this.$nextTick(() => {
+                this.$refs.addCustomer.initData(val)
+            })
         },
-        getItemJson: function(item) {
+
+        downLoad() {
 
         },
         checkedBox(i) {
@@ -223,6 +234,9 @@ export default {
             }
             this.search.groupIds = this.groupIds.join(',')
         },
+        cancel() {
+            this.dialogAddVisible = false
+        },
         baseRequest(opUrl, postData) {
             return this.$channel.globeRequest('CustomerManagementController', opUrl, postData, '')
         }

+ 10 - 1
src/views/parkAssets/parkBuild/index.vue

@@ -201,10 +201,19 @@
                 <el-col :span="4" class="col-txt"><span>*结构</span></el-col>
                 <el-col :span="8" class="col-input">
                   <el-form-item prop="structure">
-                    <el-select v-model="buildForm.structure" placeholder="" filterable :disabled="isView">
+                    <el-select
+                      v-model="buildForm.structure"
+                      :popper-append-to-body="false"
+                      popper-class="statistic_base"
+                      placeholder=""
+                      filterable
+                      :disabled="isView"
+                    >
                       <el-option
                         v-for="item in dc_data.BUILD_STRUCTURE"
                         :key="item.value"
+                        :popper-append-to-body="false"
+                        popper-class="statistic_base"
                         :label="item.label"
                         :value="item.value"
                       />

+ 1 - 1
src/views/parkAssets/parkFloorDisc/index.vue

@@ -435,7 +435,7 @@
               </el-row>
               <el-row>
                 <!-- 特殊表单 -->
-                <div v-for="(item, index) in formLP.dynamicItem" :key="index" style="border:1px solid #000;">
+                <div v-for="(item, index) in formLP.dynamicItem" :key="index">
                   <el-row style="margin-top: 10px">
                     <el-col :span="2" class="col-txt"><span>户型</span></el-col>
                     <el-col :span="4" class="col-input">