liujq 2 роки тому
батько
коміт
f76bcc6e35

+ 50 - 7
src/views/cust/components/searchForm/Index.vue

@@ -3,7 +3,24 @@
     <base-form slot="content" ref="ruleForm" :data="searchData">
       <div slot="footer">
         <el-button :loading="listLoading" icon="el-icon-search" class="xl-form-btn bgc1" @click="searchHandle">查询</el-button>
-        <!-- <el-button :loading="listLoading" icon="el-icon-plus" class="xl-form-btn bgc2" @click="addHandle">添加客户</el-button> -->
+        <el-button :loading="listLoading" icon="el-icon-plus" class="xl-form-btn bgc2" @click="addHandle">单个添加</el-button>
+        <el-upload
+          style="display: inline-block;margin-left: 10px;"
+          ref="upload"
+          name="excel"
+          :action="`${requireUrl}/adm/customer/import`"
+          :data="{type: 'cust', token}"
+          :show-file-list="false"
+          :on-success="uploadSuccess"
+          :on-error="uploadError"
+          :before-upload="uploadBefore"
+          :multiple="false"
+          :limit="1"
+          :on-exceed="uploadHandleExceed"
+        >
+          <el-button icon="el-icon-upload2" class="xl-form-btn bgc3" >批量导入</el-button>
+        </el-upload>
+        <!-- <el-button :loading="listLoading" icon="el-icon-plus" class="xl-form-btn bgc3" @click="addHandle">批量导入</el-button> -->
       </div>
     </base-form>
   </header-collapse>
@@ -17,21 +34,47 @@ export default {
   },
   inject: ['parentData'],
   data() {
+    let requireUrl = process.env.VUE_APP_BASE_API
+    const token = window.sessionStorage.getItem('fp_token')
     return {
+      requireUrl,
+      uploadHeaders: {
+        'Content-Type': 'multipart/form-data'
+      },
+      token,
       searchData: [
+        { label: '中介分销', key: 'user_id', type: 'selectRemote',
+          remoteParams: { skey: 'nickname', api: `user.admuserlist`, opKey: 'nickname', opVal: 'id' },
+        },
         { label: '电话', key: 'phone' },
         { label: '姓名', key: 'name' },
         { label: '性别', key: 'sex', type: 'select', options: this.$dictData.sex},
-        { label: '客户状态', key: 'report_state', type: 'select', options: this.$dictData.report_state},
-        { label: '报备进度', key: 'report_step', type: 'select', options: this.$dictData.report_step},
-        { label: '意向楼盘', key: 'estate_id', type: 'selectRemote',
-          remoteParams: { skey: 'estate_name', api: `house.admestatelist`, opKey: 'estate_name', opVal: 'id' },
-        },
-        { label: '备注', key: 'remark' },
+        { label: '备注', key: 'demand' },
       ]
     }
   },
   methods: {
+    uploadBefore(file) {
+      console.log('上传前:', file)
+    },
+    uploadHandleExceed(files, fileList) {
+      this.$msgw(`当前限制上传 1 个文件`)
+    },
+    uploadSuccess(res, file) {
+      this.$refs.upload.clearFiles()
+      if(res.errno === 0){
+        this.$msg('导入成功!', '', () => {
+          this.parentData.fetchData()
+        })
+      } else {
+        this.$msgw(res.msg)
+      }
+    },
+    uploadError(file) {
+      this.$refs.upload.clearFiles();
+      this.$msg('上传失败!')
+      console.log('上传失败:', file)
+    },
     addHandle () {
       this.parentData.isDtlShow = true
       this.parentData.curObj = {}

+ 5 - 3
src/views/cust/index.vue

@@ -27,7 +27,7 @@
 </template>
 <script>
 import { arrToObj } from '@/utils'
-import SearchForm from './components/searchForm/My'
+import SearchForm from './components/searchForm/Index'
 import PopupEdit from './components/popup/IndexEdit'
 import baseTable from '_m/baseTable.js'
 export default {
@@ -55,7 +55,9 @@ export default {
   computed: {
     tableData2() {
       const arr = [...this.tableData]
-      arr.map(item => {})
+      arr.map(item => {
+        item.createBy = item.create_user ? item.create_user.nickname : '-'
+      })
       return arr
     }
   },
@@ -67,7 +69,7 @@ export default {
         { label: '电话', prop: 'phone' },
         { label: '性别', prop: 'sex', type: 'tag', tags: arrToObj(this.$dictData.sex), tagTypeObj: {'male': 'primary', 'female': 'danger'} },
         { label: '备注', prop: 'demand', fullShow: true, minWidth: 200, align: 'left' },
-        { label: '创建人', prop: 'create_by' },
+        { label: '创建人', prop: 'createBy' },
         { label: '创建时间', prop: 'create_at' },
         { label: '操作', width: 120, type: 'handle2', operations:
           [

+ 0 - 1
src/views/cust/my.vue

@@ -67,7 +67,6 @@ export default {
         { label: '电话', prop: 'phone' },
         { label: '性别', prop: 'sex', type: 'tag', tags: arrToObj(this.$dictData.sex), tagTypeObj: {'male': 'primary', 'female': 'danger'} },
         { label: '备注', prop: 'demand', fullShow: true, minWidth: 200, align: 'left' },
-        { label: '创建人', prop: 'create_by' },
         { label: '创建时间', prop: 'create_at' },
         { label: '操作', width: 120, type: 'handle2', operations:
           [

+ 3 - 0
src/views/report/components/searchForm/Index.vue

@@ -19,6 +19,9 @@ export default {
   data() {
     return {
       searchData: [
+        { label: '中介分销', key: 'user_id', type: 'selectRemote',
+          remoteParams: { skey: 'nickname', api: `user.admuserlist`, opKey: 'nickname', opVal: 'id' },
+        },
         { label: '电话', key: 'phone' },
         { label: '姓名', key: 'name' },
         { label: '性别', key: 'sex', type: 'select', options: this.$dictData.sex},

+ 46 - 0
src/views/report/components/searchForm/My.vue

@@ -0,0 +1,46 @@
+<template>
+  <header-collapse>
+    <base-form slot="content" ref="ruleForm" :data="searchData">
+      <div slot="footer">
+        <el-button :loading="listLoading" icon="el-icon-search" class="xl-form-btn bgc1" @click="searchHandle">查询</el-button>
+        <!-- <el-button :loading="listLoading" icon="el-icon-plus" class="xl-form-btn bgc2" @click="addHandle">添加客户</el-button> -->
+      </div>
+    </base-form>
+  </header-collapse>
+</template>
+<script>
+export default {
+  name: 'custIndex',
+  mixins: [],
+  props: {
+    listLoading: Boolean
+  },
+  inject: ['parentData'],
+  data() {
+    return {
+      searchData: [
+        { label: '电话', key: 'phone' },
+        { label: '姓名', key: 'name' },
+        { label: '性别', key: 'sex', type: 'select', options: this.$dictData.sex},
+        { label: '客户状态', key: 'report_state', type: 'select', options: this.$dictData.report_state},
+        { label: '报备进度', key: 'report_step', type: 'select', options: this.$dictData.report_step},
+        { label: '意向楼盘', key: 'estate_id', type: 'selectRemote',
+          remoteParams: { skey: 'estate_name', api: `house.admestatelist`, opKey: 'estate_name', opVal: 'id' },
+        },
+        { label: '备注', key: 'remark' },
+      ]
+    }
+  },
+  methods: {
+    addHandle () {
+      this.parentData.isDtlShow = true
+      this.parentData.curObj = {}
+    },
+    searchHandle() {
+      const oldform = this.$refs.ruleForm.baseForm
+      const newForm = { ...oldform }
+      this.$emit('change', newForm)
+    }
+  }
+}
+</script>

+ 2 - 1
src/views/report/index.vue

@@ -90,6 +90,7 @@ export default {
     tableData2() {
       const arr = [...this.tableData]
       arr.map(item => {
+        item.createBy = item.create_user ? item.create_user.nickname : '-'
         item.newRecord = `${item.record_estate_name ? item.record_estate_name : '-'}${item.record_protect_at && item.record_protect_at !== '1970-01-01' ? '(' + item.record_protect_at + ')' : ''}-${item.record_remark ? item.record_remark : ''}`
       })
       return arr
@@ -107,7 +108,7 @@ export default {
         { label: '报备时间', prop: 'create_at' },
         { label: '性别', prop: 'sex', type: 'tag', tags: arrToObj(this.$dictData.sex), tagTypeObj: {'male': 'primary', 'female': 'danger'} },
         { label: '备注', prop: 'remark', fullShow: true },
-        { label: '报备人', prop: 'create_by' },
+        { label: '报备人', prop: 'createBy' },
         { label: '操作', width: 90, type: 'handle2', operations:
           [
             { label: '报备详情', func: this.openQPopup, btnType: 'primary' },

+ 1 - 2
src/views/report/my.vue

@@ -59,7 +59,7 @@
 </template>
 <script>
 import { arrToObj } from '@/utils'
-import SearchForm from './components/searchForm/Index'
+import SearchForm from './components/searchForm/My'
 import IndexRecord from './components/popup/IndexRecordMy'
 import PopupEdit from './components/popup/IndexEdit'
 import baseTable from '_m/baseTable.js'
@@ -107,7 +107,6 @@ export default {
         { label: '报备时间', prop: 'create_at' },
         { label: '性别', prop: 'sex', type: 'tag', tags: arrToObj(this.$dictData.sex), tagTypeObj: {'male': 'primary', 'female': 'danger'} },
         { label: '备注', prop: 'remark', fullShow: true },
-        { label: '报备人', prop: 'create_by' },
         { label: '操作', width: 90, type: 'handle2', operations:
           [
             { label: '报备详情', func: this.openQPopup, btnType: 'primary' },