瀏覽代碼

分销商、企业客户管理字段对接

sunlupeng 7 月之前
父節點
當前提交
de280259e0
共有 4 個文件被更改,包括 139 次插入87 次删除
  1. 5 5
      src/api/business.js
  2. 5 5
      src/api/distributor.js
  3. 44 36
      src/views/customer/business.vue
  4. 85 41
      src/views/customer/distributor.vue

+ 5 - 5
src/api/business.js

@@ -1,6 +1,6 @@
 import request from '@/utils/request'
 
-export function listExpress(query) {
+export function listBusiness(query) {
   return request({
     url: '/customer-business/page',
     method: 'get',
@@ -8,7 +8,7 @@ export function listExpress(query) {
   })
 }
 
-export function createExpress(data) {
+export function createBusiness(data) {
   return request({
     url: '/customer-business/add',
     method: 'post',
@@ -16,7 +16,7 @@ export function createExpress(data) {
   })
 }
 
-export function readExpress(data) {
+export function readBusiness(data) {
   return request({
     url: '/customer-business/info',
     method: 'get',
@@ -24,7 +24,7 @@ export function readExpress(data) {
   })
 }
 
-export function updateExpress(data) {
+export function updateBusiness(data) {
   return request({
     url: '/customer-business/edit',
     method: 'post',
@@ -32,7 +32,7 @@ export function updateExpress(data) {
   })
 }
 
-export function deleteExpress(query) {
+export function deleteBusiness(query) {
   return request({
     url: '/customer-business/remove',
     method: 'post',

+ 5 - 5
src/api/distributor.js

@@ -1,6 +1,6 @@
 import request from '@/utils/request'
 
-export function listExpress(query) {
+export function listDistributor(query) {
   return request({
     url: '/customer-distributor/page',
     method: 'get',
@@ -8,7 +8,7 @@ export function listExpress(query) {
   })
 }
 
-export function createExpress(data) {
+export function createDistributor(data) {
   return request({
     url: '/customer-distributor/add',
     method: 'post',
@@ -16,7 +16,7 @@ export function createExpress(data) {
   })
 }
 
-export function readExpress(data) {
+export function readDistributor(data) {
   return request({
     url: '/customer-distributor/info',
     method: 'get',
@@ -24,7 +24,7 @@ export function readExpress(data) {
   })
 }
 
-export function updateExpress(data) {
+export function updateDistributor(data) {
   return request({
     url: '/customer-distributor/edit',
     method: 'post',
@@ -32,7 +32,7 @@ export function updateExpress(data) {
   })
 }
 
-export function deleteExpress(query) {
+export function deleteDistributor(query) {
   return request({
     url: '/customer-distributor/remove',
     method: 'post',

+ 44 - 36
src/views/customer/business.vue

@@ -1,14 +1,14 @@
-rookieCode<template>
+<template>
   <div class="app-container calendar-list-container">
 
     <!-- 查询和其他操作 -->
     <div class="filter-container">
-      <el-input clearable class="filter-item" style="width: 200px;" placeholder="物流公司名称" v-model="listQuery.logisticsName">
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="企业名称" v-model="listQuery.companyName">
       </el-input>
       <el-select v-model="listQuery.status" clearable placeholder="状态" class="filter-item" style="width: 200px;">
-                <el-option :key="item.type" v-for="item in statusList" :label="item.name" :value="item.type">
-                </el-option>
-            </el-select>
+          <el-option :key="item.type" v-for="item in statusList" :label="item.name" :value="item.type">
+          </el-option>
+      </el-select>
       <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleQuery">查找</el-button>
       <el-button class="filter-item" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
       <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleCreate">添加</el-button>
@@ -22,13 +22,16 @@ rookieCode<template>
       <el-table-column type="index" label="序号" header-align="center" align="center">
       </el-table-column>
 
-      <el-table-column align="center" min-width="100px" label="物流公司名称" prop="logisticsName">
+      <el-table-column align="center" min-width="100px" label="企业编号" prop="customerCode">
       </el-table-column>
 
-      <el-table-column align="center" min-width="80px" label="快递查询代码" prop="queryCode">
+      <el-table-column align="center" min-width="100px" label="企业名称" prop="companyName">
       </el-table-column>
 
-      <el-table-column align="center" min-width="80px" label="菜鸟代码" prop="rookieCode">
+      <el-table-column align="center" min-width="80px" label="联系人" prop="contactsName">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="80px" label="联系电话" prop="contactsPhone">
       </el-table-column>
 
       <el-table-column align="center" min-width="50px" label="状态">
@@ -37,9 +40,6 @@ rookieCode<template>
             <span v-if="props.row.status == 1" style="color: #E6A23C;font-weight: bold;">停用</span>
           </template>
       </el-table-column>
-      <!-- <el-table-column align="center" min-width="150px" label="备注" prop="remarks">
-      </el-table-column> -->
-
       <el-table-column align="center" label="操作" width="250" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button type="primary" size="small" @click="handleUpdate(scope.row)">编辑</el-button>
@@ -63,20 +63,23 @@ rookieCode<template>
     <!-- 添加或修改对话框 -->
     <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="600px">
       <el-form :rules="rules" ref="dataForm" :model="dataForm" status-icon label-position="left" label-width="110px">
-        <el-form-item label="物流公司名称" prop="logisticsName">
-          <el-input v-model="dataForm.logisticsName"></el-input>
+        <el-form-item label="企业编号" prop="customerCode">
+          <el-input v-model="dataForm.customerCode" placeholder="请输入"></el-input>
         </el-form-item>
-        <el-form-item label="快递查询代码" prop="queryCode">
-          <el-input v-model="dataForm.queryCode"></el-input>
+        <el-form-item label="企业名称" prop="companyName">
+          <el-input v-model="dataForm.companyName" placeholder="请输入"></el-input>
+        </el-form-item>      
+        <el-form-item label="联系人" prop="contactsName" placeholder="请输入">
+          <el-input v-model="dataForm.contactsName"></el-input>
         </el-form-item>
-        <el-form-item label="菜鸟代码" prop="rookieCode">
-          <el-input v-model="dataForm.rookieCode"></el-input>
+        <el-form-item label="联系电话" prop="contactsPhone" placeholder="请输入">
+          <el-input v-model="dataForm.contactsPhone"></el-input>
         </el-form-item>
-        <!-- <el-form-item label="备注" prop="remarks">
+         <el-form-item label="备注" prop="remarks">
           <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="请输入"
             v-model="dataForm.remarks">
           </el-input>
-        </el-form-item> -->
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible = false">取消</el-button>
@@ -88,7 +91,8 @@ rookieCode<template>
   </div>
 </template>
 <script>
-import { listExpress, createExpress, updateExpress, deleteExpress, setState } from '@/api/express'
+import { listBusiness, createBusiness, updateBusiness, deleteBusiness, setState } from '@/api/business'
+import { dataTypeList } from "@/api/public";
 import waves from '@/directive/waves' // 水波纹指令
 
 export default {
@@ -111,13 +115,14 @@ export default {
       listQuery: {
         page: 1,
         limit: 10,
-        logisticsName: undefined,
+        companyName: undefined,
         status: undefined,
       },
       dataForm: {
-        logisticsName: undefined,
-        queryCode: undefined,
-        rookieCode: undefined,
+        customerCode: undefined,
+        companyName: undefined,
+        contactsName: undefined,
+        contactsPhone: undefined,
         remarks: undefined,
       },
       dialogFormVisible: false,
@@ -127,14 +132,16 @@ export default {
         create: '创建'
       },
       rules: {
-        logisticsName: [{ required: true, message: '物流公司名称不能为空', trigger: 'blur' }],
-        queryCode: [{ required: true, message: '快递查询代码不能为空', trigger: 'blur' }],
-        rookieCode: [{ required: true, message: '菜鸟代码不能为空', trigger: 'blur' }],
+        customerCode: [{ required: true, message: '企业编号不能为空', trigger: 'blur' }],
+        companyName: [{ required: true, message: '企业名称不能为空', trigger: 'blur' }],
+        contactsName: [{ required: true, message: '联系人不能为空', trigger: 'blur' }],
+        contactsPhone: [{ required: true, message: '联系电话不能为空', trigger: 'blur' }],
       },
     }
   },
   created() {
-    this.getList()
+    this.getTypeList();
+    this.getList();
   },
   methods: {
     /** 重置按钮操作 */
@@ -142,14 +149,14 @@ export default {
       this.listQuery = {
         page: 1,
         limit: 10,
-        logisticsName: undefined,
+        companyName: undefined,
         status: undefined,
       };
       this.handleQuery();
     },
     getList() {
       this.listLoading = true
-      listExpress(this.listQuery).then(response => {
+      listBusiness(this.listQuery).then(response => {
         this.list = response.data.data.items
         this.total = response.data.data.total
         this.listLoading = false
@@ -173,9 +180,10 @@ export default {
     },
     resetForm() {
       this.dataForm = {
-        logisticsName: undefined,
-        queryCode: undefined,
-        rookieCode: undefined,
+        customerCode: undefined,
+        companyName: undefined,
+        contactsName: undefined,
+        contactsPhone: undefined,
         remarks: undefined,
       }
     },
@@ -190,7 +198,7 @@ export default {
     createData() {
       this.$refs['dataForm'].validate((valid) => {
         if (valid) {
-          createExpress(this.dataForm).then(response => {
+          createBusiness(this.dataForm).then(response => {
             this.list.unshift(response.data.data)
             this.dialogFormVisible = false
             this.$notify({
@@ -215,7 +223,7 @@ export default {
     updateData() {
       this.$refs['dataForm'].validate((valid) => {
         if (valid) {
-          updateExpress(this.dataForm).then(() => {
+          updateBusiness(this.dataForm).then(() => {
             for (const v of this.list) {
               if (v.id === this.dataForm.id) {
                 const index = this.list.indexOf(v)
@@ -241,7 +249,7 @@ export default {
           cancelButtonText: '取消',
           type: 'warning'
         }).then(() => {
-          deleteExpress({id:row.id}).then(response => {
+          deleteBusiness({id:row.id}).then(response => {
             this.$notify({
               title: '成功',
               message: '删除成功',

+ 85 - 41
src/views/customer/distributor.vue

@@ -1,14 +1,18 @@
-rookieCode<template>
+contactsName<template>
   <div class="app-container calendar-list-container">
 
     <!-- 查询和其他操作 -->
     <div class="filter-container">
-      <el-input clearable class="filter-item" style="width: 200px;" placeholder="物流公司名称" v-model="listQuery.logisticsName">
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="公司名称" v-model="listQuery.companyName">
       </el-input>
+      <el-select class="filter-item" style="width: 200px" v-model="listQuery.companyLevel" filterable placeholder="分销商等级">
+        <el-option :key="item.dictLabel" v-for="item in company_level" :label="item.dictLabel" :value="item.dictLabel">
+        </el-option>
+      </el-select>
       <el-select v-model="listQuery.status" clearable placeholder="状态" class="filter-item" style="width: 200px;">
-                <el-option :key="item.type" v-for="item in statusList" :label="item.name" :value="item.type">
-                </el-option>
-            </el-select>
+          <el-option :key="item.type" v-for="item in statusList" :label="item.name" :value="item.type">
+          </el-option>
+      </el-select>
       <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleQuery">查找</el-button>
       <el-button class="filter-item" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
       <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleCreate">添加</el-button>
@@ -22,13 +26,25 @@ rookieCode<template>
       <el-table-column type="index" label="序号" header-align="center" align="center">
       </el-table-column>
 
-      <el-table-column align="center" min-width="100px" label="物流公司名称" prop="logisticsName">
+      <el-table-column align="center" min-width="100px" label="分销商编号" prop="customerCode">
       </el-table-column>
 
-      <el-table-column align="center" min-width="80px" label="快递查询代码" prop="queryCode">
+      <el-table-column align="center" min-width="100px" label="公司名称" prop="companyName">
       </el-table-column>
 
-      <el-table-column align="center" min-width="80px" label="菜鸟代码" prop="rookieCode">
+      <el-table-column align="center" min-width="80px" label="分销商等级" prop="companyLevel">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="80px" label="合同开始时间" prop="contractStart">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="80px" label="合同结束时间" prop="contractDate">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="80px" label="联系人" prop="contactsName">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="80px" label="联系电话" prop="contactsPhone">
       </el-table-column>
 
       <el-table-column align="center" min-width="50px" label="状态">
@@ -37,9 +53,6 @@ rookieCode<template>
             <span v-if="props.row.status == 1" style="color: #E6A23C;font-weight: bold;">停用</span>
           </template>
       </el-table-column>
-      <!-- <el-table-column align="center" min-width="150px" label="备注" prop="remarks">
-      </el-table-column> -->
-
       <el-table-column align="center" label="操作" width="250" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button type="primary" size="small" @click="handleUpdate(scope.row)">编辑</el-button>
@@ -63,20 +76,30 @@ rookieCode<template>
     <!-- 添加或修改对话框 -->
     <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="600px">
       <el-form :rules="rules" ref="dataForm" :model="dataForm" status-icon label-position="left" label-width="110px">
-        <el-form-item label="物流公司名称" prop="logisticsName">
-          <el-input v-model="dataForm.logisticsName"></el-input>
+        <el-form-item label="分销商编号" prop="customerCode">
+          <el-input v-model="dataForm.customerCode" placeholder="请输入"></el-input>
+        </el-form-item>
+        <el-form-item label="公司名称" prop="companyName">
+          <el-input v-model="dataForm.companyName" placeholder="请输入"></el-input>
         </el-form-item>
-        <el-form-item label="快递查询代码" prop="queryCode">
-          <el-input v-model="dataForm.queryCode"></el-input>
+        <el-form-item label="分销商等级" prop="companyLevel">
+          <el-select v-model="dataForm.companyLevel" filterable placeholder="请选择" style="width: 100%">
+            <el-option :key="item.dictLabel" v-for="item in company_level" :label="item.dictLabel" :value="item.dictLabel">
+            </el-option>
+          </el-select>
         </el-form-item>
-        <el-form-item label="菜鸟代码" prop="rookieCode">
-          <el-input v-model="dataForm.rookieCode"></el-input>
+        <el-form-item label="合同开始日期" prop="contractStart">
+          <el-date-picker style="width: 100%;" v-model="dataForm.contractStart" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"></el-date-picker>
+        </el-form-item>
+        <el-form-item label="合同结束日期" prop="contractDate">
+          <el-date-picker style="width: 100%;" v-model="dataForm.contractDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"></el-date-picker>
+        </el-form-item>                
+        <el-form-item label="联系人" prop="contactsName" placeholder="请输入">
+          <el-input v-model="dataForm.contactsName"></el-input>
+        </el-form-item>
+        <el-form-item label="联系电话" prop="contactsPhone" placeholder="请输入">
+          <el-input v-model="dataForm.contactsPhone"></el-input>
         </el-form-item>
-        <!-- <el-form-item label="备注" prop="remarks">
-          <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="请输入"
-            v-model="dataForm.remarks">
-          </el-input>
-        </el-form-item> -->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible = false">取消</el-button>
@@ -88,13 +111,15 @@ rookieCode<template>
   </div>
 </template>
 <script>
-import { listExpress, createExpress, updateExpress, deleteExpress, setState } from '@/api/express'
+import { listDistributor, createDistributor, updateDistributor, deleteDistributor, setState } from '@/api/distributor'
+import { dataTypeList } from "@/api/public";
 import waves from '@/directive/waves' // 水波纹指令
 
 export default {
   directives: { waves },
   data() {
     return {
+      brandOptions: [],
       list: undefined,
       total: undefined,
       listLoading: true,
@@ -111,14 +136,18 @@ export default {
       listQuery: {
         page: 1,
         limit: 10,
-        logisticsName: undefined,
+        companyName: undefined,
+        companyLevel: undefined,
         status: undefined,
       },
       dataForm: {
-        logisticsName: undefined,
-        queryCode: undefined,
-        rookieCode: undefined,
-        remarks: undefined,
+        customerCode: undefined,
+        companyName: undefined,
+        companyLevel: undefined,
+        contractStart: undefined,
+        contractDate: undefined,
+        contactsName: undefined,
+        contactsPhone: undefined,
       },
       dialogFormVisible: false,
       dialogStatus: '',
@@ -127,29 +156,41 @@ export default {
         create: '创建'
       },
       rules: {
-        logisticsName: [{ required: true, message: '物流公司名称不能为空', trigger: 'blur' }],
-        queryCode: [{ required: true, message: '快递查询代码不能为空', trigger: 'blur' }],
-        rookieCode: [{ required: true, message: '菜鸟代码不能为空', trigger: 'blur' }],
+        customerCode: [{ required: true, message: '分销商编号不能为空', trigger: 'blur' }],
+        companyName: [{ required: true, message: '公司名称不能为空', trigger: 'blur' }],
+        companyLevel: [{ required: true, message: '请选择合同开始日期', trigger: 'blur' }],
+        contractStart: [{ required: true, message: '请选择分销商等级', trigger: 'blur' }],
+        contractDate: [{ required: true, message: '请选择合同结束日期', trigger: 'blur' }],
+        contactsName: [{ required: true, message: '联系人不能为空', trigger: 'blur' }],
+        contactsPhone: [{ required: true, message: '联系电话不能为空', trigger: 'blur' }],
       },
     }
   },
   created() {
-    this.getList()
+    this.getTypeList();
+    this.getList();
   },
   methods: {
+    getDictType(){
+      //分销商等级
+      dataTypeList({ dictType: 'company_level' }).then(response => {
+        this.company_level = response.data.data;
+      });
+    },
     /** 重置按钮操作 */
     resetQuery() {
       this.listQuery = {
         page: 1,
         limit: 10,
-        logisticsName: undefined,
+        companyName: undefined,
+        companyLevel: undefined,
         status: undefined,
       };
       this.handleQuery();
     },
     getList() {
       this.listLoading = true
-      listExpress(this.listQuery).then(response => {
+      listDistributor(this.listQuery).then(response => {
         this.list = response.data.data.items
         this.total = response.data.data.total
         this.listLoading = false
@@ -173,10 +214,13 @@ export default {
     },
     resetForm() {
       this.dataForm = {
-        logisticsName: undefined,
-        queryCode: undefined,
-        rookieCode: undefined,
-        remarks: undefined,
+        customerCode: undefined,
+        companyName: undefined,
+        companyLevel: undefined,
+        contractStart: undefined,
+        contractDate: undefined,
+        contactsName: undefined,
+        contactsPhone: undefined,
       }
     },
     handleCreate() {
@@ -190,7 +234,7 @@ export default {
     createData() {
       this.$refs['dataForm'].validate((valid) => {
         if (valid) {
-          createExpress(this.dataForm).then(response => {
+          createDistributor(this.dataForm).then(response => {
             this.list.unshift(response.data.data)
             this.dialogFormVisible = false
             this.$notify({
@@ -215,7 +259,7 @@ export default {
     updateData() {
       this.$refs['dataForm'].validate((valid) => {
         if (valid) {
-          updateExpress(this.dataForm).then(() => {
+          updateDistributor(this.dataForm).then(() => {
             for (const v of this.list) {
               if (v.id === this.dataForm.id) {
                 const index = this.list.indexOf(v)
@@ -241,7 +285,7 @@ export default {
           cancelButtonText: '取消',
           type: 'warning'
         }).then(() => {
-          deleteExpress({id:row.id}).then(response => {
+          deleteDistributor({id:row.id}).then(response => {
             this.$notify({
               title: '成功',
               message: '删除成功',