ysy 2 tahun lalu
induk
melakukan
190bb05f49

TEMPAT SAMPAH
dist.zip


+ 62 - 12
src/views/saleManage/contact/components/addContactDialog.vue

@@ -5,6 +5,7 @@
     :visible.sync="visible"
     :title="title"
     :close-on-click-modal="false"
+    :append-to-body="true"
     width="80%"
     @close="cancel"
   >
@@ -155,12 +156,17 @@
             </el-col>
             <el-col :span="8">
               <el-form-item
-                label="是否存在上级集团公司"
-                prop="hasParentGroup"
-                label-width="155px"
+                label="关联上级单位"
+                prop="parentId"
+             
               >
-                <el-radio v-model="form.hasParentGroup" :label="1">是</el-radio>
-                <el-radio v-model="form.hasParentGroup" :label="0">否</el-radio>
+              <el-input
+                  placeholder="请选择关联上级单位"
+                  v-model="form.parentName"
+                  readonly
+                  @click.native="handParent"
+               
+                ></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -353,12 +359,12 @@
             </el-col>
 
             <el-col :span="8">
-              <el-form-item label="件人" prop="sender">
+              <el-form-item label="件人" prop="sender">
                 <el-input placeholder="请输入" v-model="otherForm.sender" maxlength="50"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="件人电话" prop="senderPhone">
+              <el-form-item label="件人电话" prop="senderPhone">
                 <el-input
                   placeholder="请输入"
                   v-model="otherForm.senderPhone"
@@ -367,7 +373,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="件人地址" prop="addressId">
+              <el-form-item label="件人地址" prop="addressId">
                 <el-cascader
                   clearable
                   v-model="otherForm.addressId"
@@ -378,7 +384,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="件人详细地址" prop="address"
+              <el-form-item label="件人详细地址" prop="address"
                  label-width="130px">
                 <el-input
                   placeholder="请输入"
@@ -396,7 +402,11 @@
       <el-button type="primary" @click="save">保存</el-button>
       <el-button @click="cancel">返回</el-button>
     </div>
+
+    <parentList ref="parentRef" @changeParent="changeParent"></parentList>
+
   </ele-modal>
+  
 </template>
 
 <script>
@@ -410,6 +420,7 @@ import personSelect from '@/components/CommomSelect/person-select.vue';
 import {listOrganizations} from '@/api/system/organization';
 import {copyObj} from '@/utils/util';
 
+import parentList from './parentList.vue'
 
 export default {
     props: {
@@ -419,12 +430,13 @@ export default {
     components: {
       fileUpload,
       deptSelect,
-      personSelect
+      personSelect,
+      parentList
     },
     data() {
       let formDef = {
           address: '',
-          addressId: 0,
+          addressId: '',
           addressName: '',
           authorizationLimit: 0,
           businessLicenseFiles: [],
@@ -433,7 +445,7 @@ export default {
           categoryId: '',
           companyCategoryId: '',
           companyCategoryName: '',
-          hasParentGroup: 0,
+          parentId: '',
           industry: '',
           industryCode: '',
           industryFullName: '',
@@ -594,6 +606,10 @@ export default {
           ],
           authorizationLimit: [
             { required: true, message: '请输入授信额度', trigger: 'blur' }
+          ],
+
+          addressId: [
+          { required: true, message: '请选择地址', trigger: 'change' }
           ]
         },
         otherRules: {
@@ -602,7 +618,24 @@ export default {
           // ],
           taxRate: [
             { required: true, message: '请输入税率', trigger: 'change' }
+          ],
+
+          sender: [
+          { required: true, message: '请输入收件人', trigger: 'change' }
+          ],
+
+          senderPhone: [
+          { required: true, message: '请输入收件人电话', trigger: 'change' }
+          ],
+
+          addressId: [
+          { required: true, message: '请选择收件人地址', trigger: 'change' }
+          ],
+
+          address: [
+          { required: true, message: '请输入收件人详细地址', trigger: 'blur' }
           ]
+
         },
         options: {
           cityData,
@@ -617,6 +650,8 @@ export default {
         groupTreeData: [],
         // 组织机构平铺数据
         groupData: [],
+
+        parentShow: false
       };
     },
     created () {
@@ -883,6 +918,21 @@ export default {
         }
       },
 
+      handParent() {
+        let item = {
+          id:  this.form.parentId
+        }
+        this.$refs.parentRef.open(item)
+      },
+
+      changeParent(obj) {
+        this.$set( this.form, 'parentId',  obj.id)
+        this.$set( this.form, 'parentName',  obj.name)
+
+      }
+
+
+
     }
   };
 </script>

+ 6 - 7
src/views/saleManage/contact/components/contactDetailDialog.vue

@@ -96,11 +96,10 @@
             </el-col>
             <el-col :span="8">
               <el-form-item
-                label="是否存在上级集团公司:"
+                label="上级单位:"
                 prop="hasParentGroup"
-                label-width="170px"
               >
-                {{ form.hasParentGroup === 1 ? "是" : "否"}}
+                {{ form.parentName }}
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -240,22 +239,22 @@
             </el-col>
 
             <el-col :span="8">
-              <el-form-item label="件人:" prop="sender">
+              <el-form-item label="件人:" prop="sender">
                 {{otherForm.sender}}
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="件人电话:" prop="senderPhone">
+              <el-form-item label="件人电话:" prop="senderPhone">
                 {{otherForm.senderPhone}}
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="件人地址:" prop="addressId">
+              <el-form-item label="件人地址:" prop="addressId">
                 {{otherForm.addressName}}
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="件人详细地址:" prop="address" >
+              <el-form-item label="件人详细地址:" prop="address" >
                 {{otherForm.address}}
               </el-form-item>
             </el-col>

+ 239 - 0
src/views/saleManage/contact/components/parentList.vue

@@ -0,0 +1,239 @@
+<template>
+    <el-dialog title="选择工作中心" :visible.sync="visible" :before-close="handleClose" :close-on-click-modal="false"
+        :close-on-press-escape="false" append-to-body width="80%">
+        <el-card shadow="never">
+
+            <contact-search @search="reload"> </contact-search>
+
+            <ele-split-layout width="244px" allow-collapse :right-style="{ overflow: 'hidden' }">
+                <div class="ele-border-lighter split-layout-right-content">
+                    <AssetTree @handleNodeClick="handleNodeClick" id="17" :isFirstRefreshTable="false" ref="treeList" />
+                </div>
+                <!-- 表格 -->
+                <template v-slot:content>
+                    <ele-pro-table ref="table" :columns="columns" :datasource="datasource" row-key="id"
+                        height="calc(100vh - 350px)" class="dict-table" @cell-click="cellClick">
+                        <!-- 表头工具栏 -->
+                        <template v-slot:action="{ row }">
+                            <el-radio class="radio" v-model="radio" :label="row.id"><i></i></el-radio>
+                        </template>
+                    </ele-pro-table>
+                </template>
+            </ele-split-layout>
+
+
+
+
+
+
+
+        </el-card>
+
+        <div class="btns">
+            <el-button type="primary" size="small" @click="selected">选择</el-button>
+            <el-button size="small" @click="handleClose">关闭</el-button>
+        </div>
+
+    </el-dialog>
+</template>
+  
+<script>
+
+import { contactPage } from '@/api/saleManage/contact';
+import ContactSearch from './contactSearch.vue';
+import AssetTree from '@/components/AssetTree';
+export default {
+    components: {
+        ContactSearch,
+        AssetTree
+    },
+    data() {
+        return {
+            visible: false,
+
+
+
+            columns: [
+
+            {
+          action: 'action',
+          slot: 'action',
+          align: 'center',
+          label: '选择'
+        },
+                {
+                    columnKey: 'index',
+                    label: '序号',
+                    type: 'index',
+                    width: 55,
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    fixed: 'left'
+                },
+                {
+                    prop: 'code',
+                    label: '客户编码',
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    minWidth: 140
+                },
+                {
+                    prop: 'name',
+                    label: '客户名称',
+                    align: 'center',
+                    slot: 'name',
+                    showOverflowTooltip: true,
+                    minWidth: 200
+                },
+                {
+                    prop: 'serialNo',
+                    label: '客户代号',
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    minWidth: 140
+                },
+                {
+                    prop: 'phone',
+                    label: '客户电话',
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    minWidth: 120
+                },
+                {
+                    prop: 'addressName',
+                    label: '单位地址',
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    minWidth: 120,
+                    formatter: (_row, _column, cellValue) => {
+                        let addr = '' + _row.addressName ? _row.addressName.replaceAll(',', '') : '';
+                        addr += _row.address ? _row.address : '';
+                        return addr;
+                    }
+                },
+                {
+                    prop: 'linkName',
+                    label: '联系人',
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    minWidth: 120
+                },
+                {
+                    prop: 'linkPhone',
+                    label: '联系人电话',
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    minWidth: 120
+                },
+                {
+                    prop: 'status',
+                    label: '状态',
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    minWidth: 100,
+                    formatter: (_row, _column, cellValue) => {
+                        return _row.status === 1 ? '启用' : '禁用';
+                    }
+                },
+
+
+            ],
+
+            radio: null,
+        }
+    },
+
+    watch: {
+
+    },
+    methods: {
+        open(item) {
+            if (item) {
+            
+                this.radio = item.id
+            }
+            this.visible = true
+        },
+
+
+        /* 表格数据源 */
+        datasource({ page, limit, where, order }) {
+            return contactPage({
+                pageNum: page,
+                size: limit,
+                type: 1,
+                ...where
+            });
+        },
+
+
+        /* 刷新表格 */
+        reload(where) {
+            this.$refs.table.reload({ page: 1, where });
+        },
+
+        handleNodeClick(data, node) {
+            this.curNodeData = data;
+            this.reload({ categoryId: data.id });
+        },
+
+
+        // 单击获取id
+        cellClick(row) {
+            this.current = row
+            this.radio = row.id
+        },
+        handleClose() {
+            this.visible = false
+            this.current = null
+            this.radio = ''
+        },
+
+        selected() {
+            if (!this.current) {
+                return this.$message.warning('请选择上级客户')
+            }
+            this.$emit('changeParent', this.current)
+            this.handleClose()
+        },
+
+
+
+
+
+    }
+}
+</script>
+  
+<style lang="scss" scoped>
+.tree_col {
+    border: 1px solid #eee;
+    padding: 10px 0;
+    box-sizing: border-box;
+    height: 500px;
+    overflow: auto;
+}
+
+.table_col {
+    padding-left: 10px;
+
+    ::v-deep .el-table th.el-table__cell {
+        background: #f2f2f2;
+    }
+}
+
+.pagination {
+    text-align: right;
+    padding: 10px 0;
+}
+
+.btns {
+    text-align: center;
+    padding: 10px 0;
+}
+
+.topsearch {
+    margin-bottom: 15px;
+}
+</style>
+  

+ 8 - 0
src/views/saleManage/contact/index.vue

@@ -213,6 +213,14 @@ export default {
             showOverflowTooltip: true,
             minWidth: 120
           },
+
+          {
+            prop: 'parentName',
+            label: '上级单位',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120
+          },
           {
             prop: 'status',
             label: '状态',