pengyh 1 سال پیش
والد
کامیت
db8edbfd13

+ 35 - 0
src/api/distributorManagement.js

@@ -17,3 +17,38 @@ export function memberPageExport(data, name) {
   })
 }
 
+// 审核
+export function memberAudit(params) {
+  return request({
+    url: '/member/share/examine',
+    method: 'post',
+    params
+  })
+}
+
+// 获取详情
+export function getMemberDetail(params) {
+  return request({
+    url: '/member/detail',
+    method: 'get',
+    params
+  })
+}
+
+// 设置取消分销员
+export function memberInner(params) {
+  return request({
+    url: '/member/batch/type',
+    method: 'post',
+    params
+  })
+}
+
+// 入驻网点
+export function getWebsit(params) {
+  return request({
+    url: '/admin/websit/list',
+    method: 'get',
+    params
+  })
+}

+ 11 - 29
src/api/masterManagement.js

@@ -18,47 +18,29 @@ export function memberPageExport(data, name) {
 }
 
 
-// 获取仓储列表
-export function getList(params) {
+// 审核
+export function memberAudit(params) {
   return request({
-    url: '/member/list',
-    method: 'get',
-    params
-  })
-}
-
-// 删除仓储
-export function deleteMember(params) {
-  return request({
-    url: '/member/delete',
+    url: '/member/worker/examine',
     method: 'post',
     params
   })
 }
 
-// 新增仓储
-export function addMember(params) {
+// 获取详情
+export function getMemberDetail(params) {
   return request({
-    url: '/member/add',
-    method: 'post',
-    data: params
+    url: '/member/worker/examine/detail',
+    method: 'get',
+    params
   })
 }
 
-// 编辑仓储
-export function editMember(params) {
+// 设置取消分销员
+export function memberInner(params) {
   return request({
-    url: '/member/update',
+    url: '/member/batch/type',
     method: 'post',
-    data: params
-  })
-}
-
-// 获取仓储详情
-export function getMemberDetail(params) {
-  return request({
-    url: '/member/detail',
-    method: 'get',
     params
   })
 }

+ 140 - 44
src/views/userManagement/distributorManagement/index.vue

@@ -1,8 +1,17 @@
 <template>
-  <template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents"
+  <template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="200"
     :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters" :column-parsing="columnParsing"
     :operation="operation" :exportList="exportList">
-    <el-dialog title="" width="500px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
+	<div slot="moreSearch">
+	  <el-radio-group v-model="examineStatus" size="mini" @change="changeType">
+	  	<el-radio-button label="">全部</el-radio-button>
+	  	<el-radio-button label="WAIT">待审核</el-radio-button>
+	  	<el-radio-button label="OK">审核通过</el-radio-button>
+	  	<el-radio-button label="FAIL">驳回</el-radio-button>
+	  </el-radio-group>
+	  <br><br>
+	</div>
+    <el-dialog title="" width="800px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
       :show-close="true" :close-on-click-modal="false" :modal-append-to-body="false" :before-close="formCancel">
       <zj-form-container ref="formRef" :form-data="formData" :styleSwitch="false">
         <zj-form-module :title="formDialogTitles[formDialogType]" label-width="100px" :showPackUp="false"
@@ -10,10 +19,34 @@
         </zj-form-module>
       </zj-form-container>
       <div slot="footer" class="dialog-footer">
-        <el-button size="mini" @click="formCancel">取 消</el-button>
-        <el-button size="mini" @click="formConfirm" type="primary">确 定</el-button>
+		<el-button v-if="formData.examineStatus == 'WAIT'" size="mini" type="primary" @click="audit('OK')">审核通过</el-button>
+		<el-button v-if="formData.examineStatus == 'WAIT'" size="mini" type="danger" @click="audit('FAIL')">审核驳回</el-button>
+		<el-button size="mini" @click="formCancel">取 消</el-button>
       </div>
     </el-dialog>
+	<!-- 入驻网点 -->
+	<el-dialog title="设为工程师" :visible.sync="dialogVisible" @close="websitList = []" width="50%" :close-on-click-modal="false" :modal-append-to-body="false">
+		<el-form ref="workerForm" :model="workerForm" label-width="110px" size="small" label-position="left">
+			<el-row :gutter="20">
+				<el-col :span="24">
+					<el-form-item label="入驻网点" :required="true">
+						<el-select v-model="workerForm.websitId" placeholder="请选择" style="width: 100%;">
+						    <el-option
+						      v-for="item in websitList"
+						      :key="item.websitId"
+						      :label="item.name"
+						      :value="item.websitId">
+						    </el-option>
+						  </el-select>
+					</el-form-item>
+				</el-col>
+			</el-row>
+		</el-form>
+		<div slot="footer" class="dialog-footer">
+			<el-button @click="dialogVisible = false">取 消</el-button>
+			<el-button type="primary" @click="memberInner()">确定</el-button>
+		</div>
+	</el-dialog>
   </template-page>
 </template>
 
@@ -21,7 +54,7 @@
 import TemplatePage from '@/components/template/template-page-1.vue'
 import import_mixin from '@/components/template/import_mixin.js'
 import { required, mobileRequired, mobile } from '@/components/template/rules_verify.js'
-import { memberListService2,memberPageExport, addMember, deleteMember, editMember, getMemberDetail } from "@/api/distributorManagement";
+import { memberListService2,memberPageExport, getMemberDetail, memberAudit, memberInner, getWebsit } from "@/api/distributorManagement";
 export default {
   components: { TemplatePage },
   mixins: [import_mixin],
@@ -32,7 +65,7 @@ export default {
       // 表格属性
       tableAttributes: {
         // 启用勾选列
-        selectColumn: false
+        selectColumn: false,
       },
       // 表格事件
       tableEvents: {
@@ -44,11 +77,17 @@ export default {
       formDialogType: 0,
       formDialogTitles: ["审核", "详情"],
       formDialog: false,
+	  dialogVisible: false,
       formData: {
-        storageName: '',
-        storageMobile: '',
-        storageAddress: '',
+		type: '工程师',
+		examineRemark: ''
       },
+	  examineStatus: '',
+	  websitList: [],
+	  workerForm: {
+		  websitId: '',
+		  userId: '',
+	  }
     }
   },
   computed: {
@@ -60,18 +99,20 @@ export default {
       return [{
         md: 12,
         isShow: true,
-        name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        name: 'el-select',
+		options: [{label: '待审核', value: 'WAIT'},{label: '驳回', value: 'FAIL'},{label: '通过', value: 'OK'}],
+        attributes: { placeholder: '请输入', disabled: true },
         formItemAttributes: {
           label: '审核状态',
-          prop: 'examine_status',
+          prop: 'examineStatus',
           rules: []
-        }
+        },
       }, {
         md: 12,
         isShow: true,
-        name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        name: 'el-select',
+		options: [{label: '业务员', value: 'SERVICE'},{label: '师傅', value: 'WORKER'},{label: '普通用户', value: 'GENERAL'}],
+        attributes: { disabled: true },
         formItemAttributes: {
           label: '用户类型',
           prop: 'type',
@@ -81,17 +122,17 @@ export default {
         md: 12,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { placeholder: '请输入', disabled: true },
         formItemAttributes: {
           label: '用户名称',
-          prop: 'nick_name',
+          prop: 'nickName',
           rules: []
         }
       }, {
         md: 12,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { placeholder: '请输入', disabled: true },
         formItemAttributes: {
           label: '联系电话',
           prop: 'mobile',
@@ -101,58 +142,62 @@ export default {
         md: 12,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { placeholder: '请输入', disabled: true },
         formItemAttributes: {
           label: '身份证号码',
-          prop: 'id_card',
+          prop: 'idCard',
           rules: []
         }
       }, {
         md: 12,
         isShow: true,
-        name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        name: 'el-image',
+        attributes: { src: this.formData.idCardImg },
         formItemAttributes: {
           label: '身份证',
-          prop: 'id_card_img',
+          prop: 'idCardImg',
           rules: []
-        }
+        },
       }, {
         md: 12,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { placeholder: '请输入', disabled: true },
         formItemAttributes: {
           label: '所属商户',
           prop: 'companyName',
           rules: []
         }
       }, {
-        md: 12,
-        isShow: true,
-        name: 'el-input',
-        attributes: { placeholder: '请输入' },
-        formItemAttributes: {
-          label: '入驻网点',
-          prop: 'mobile',
-          rules: []
-        }
-      }, {
         md: 24,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { placeholder: '请输入',type: "textarea", disabled: this.formData.examineStatus == 'WAIT' ? false:true },
         formItemAttributes: {
           label: '备注',
-          prop: 'mobile',
+          prop: 'examineRemark',
           rules: []
         }
       }]
     }
   },
   methods: {
-    // 列表请求函数
-    getList: memberListService2,
+	// 切换状态
+	changeType(val) {
+	  this.$refs.pageRef.refreshList()
+	},
+	// 列表请求函数
+	getList(p) {
+	  try {
+	    var pam = JSON.parse(JSON.stringify(p))
+	    if (this.examineStatus) {
+	      pam.params.push({ "param": "a.examine_status", "compare": "=", "value": this.examineStatus })
+	    }
+	    return memberListService2(pam)
+	  } catch (error) {
+	    console.log(error)
+	  }
+	},
     // 列表导出函数
     exportList: memberPageExport,
     // 表格列解析渲染数据更改
@@ -167,20 +212,46 @@ export default {
     operation(h, { row, index, column }) {
       return (
         <div class='operation-btns'>
-          <el-button type="text" onClick={() => {
-            getMemberDetail({ id: row.userId }).then(res => {
+          {row.examineStatus == 'WAIT' ? <el-button type="text" onClick={() => {
+            getMemberDetail({ userId: row.userId }).then(res => {
               Object.assign(this.formData, res.data)
               this.formDialogType = 0
               this.openForm()
             })
-          }}>审核</el-button>
+          }}>审核</el-button> : null}
           <el-button type="text" onClick={() => {
-            getMemberDetail({ id: row.userId }).then(res => {
+            getMemberDetail({ userId: row.userId }).then(res => {
               Object.assign(this.formData, res.data)
               this.formDialogType = 1
               this.openForm()
             })
           }}>详情</el-button>
+		  {row.examineStatus != 'WAIT' ?<el-button type="text" onClick={() => {
+			this.workerForm.userId = row.userId
+			getWebsit().then(res => {
+               this.websitList = res.data
+			   this.dialogVisible = true
+            })
+		  }}>设为工程师</el-button>:null}
+		  {row.examineStatus != 'WAIT' ?<el-button type="text" onClick={() => {
+			this.$confirm('请确认是否设为客户, 是否继续?', '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+				memberInner({
+					type: 'GENERAL',
+					userIds: row.userId
+				}).then(res => {
+					if (res.code == 1) {
+						this.$message({ type: 'success', message: '设为客户成功!' })
+						this.$refs.pageRef.refreshList()
+					} else {
+						this.$message.error(res.msg);
+					}
+				})
+			});
+		  }}>设为客户</el-button>:null}
         </div>
       )
     },
@@ -196,10 +267,35 @@ export default {
       this.$data.formData = this.$options.data().formData
       this.formDialog = false
     },
+	audit(examineStatusEnum){
+		memberAudit({ 
+			examineStatusEnum,
+			examineRemark: this.formData.examineRemark,
+			id: this.formData.id
+		}).then(res => {
+			this.$message({ type: 'success', message: '审核成功!' })
+			this.formCancel()
+			this.$refs.pageRef.refreshList()
+		})
+	},
+	memberInner(){
+		if(!this.workerForm.websitId){
+			return this.$message({ type: 'danger', message: '请选择入驻网点!' })
+		}
+		memberInner({
+			type: 'WORKER',
+			userIds: this.workerForm.userId,
+			websitId: this.workerForm.websitId
+		}).then(res => {
+			this.dialogVisible = false
+			this.$message({ type: 'success', message: '设置工程师成功!' })
+			this.$refs.pageRef.refreshList()
+		})
+	},
     formConfirm() {
       this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
         if (valid) {
-          ([addMember, editMember][this.formDialogType])(this.formData).then(res => {
+          ([memberAudit][this.formDialogType])(this.formData).then(res => {
             this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
             this.formCancel()
             this.$refs.pageRef.refreshList()

+ 133 - 46
src/views/userManagement/masterManagement/index.vue

@@ -1,27 +1,37 @@
 <template>
-  <template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents"
-    :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters" :column-parsing="columnParsing"
-    :operation="operation" :exportList="exportList">
-    <el-dialog title="" width="500px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
-      :show-close="true" :close-on-click-modal="false" :modal-append-to-body="false" :before-close="formCancel">
-      <zj-form-container ref="formRef" :form-data="formData" :styleSwitch="false">
-        <zj-form-module :title="formDialogTitles[formDialogType]" label-width="100px" :showPackUp="false"
-          :form-data="formData" :form-items="formItems">
-        </zj-form-module>
-      </zj-form-container>
-      <div slot="footer" class="dialog-footer">
-        <el-button size="mini" @click="formCancel">取 消</el-button>
-        <el-button size="mini" @click="formConfirm" type="primary">确 定</el-button>
-      </div>
-    </el-dialog>
-  </template-page>
+	<template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="200"
+	  :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters" :column-parsing="columnParsing"
+	  :operation="operation" :exportList="exportList">
+	  <div slot="moreSearch">
+	    <el-radio-group v-model="examineStatus" size="mini" @change="changeType">
+	    	<el-radio-button label="">全部</el-radio-button>
+	    	<el-radio-button label="WAIT">待审核</el-radio-button>
+	    	<el-radio-button label="OK">审核通过</el-radio-button>
+	    	<el-radio-button label="FAIL">驳回</el-radio-button>
+	    </el-radio-group>
+	    <br><br>
+	  </div>
+	  <el-dialog title="" width="800px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
+	    :show-close="true" :close-on-click-modal="false" :modal-append-to-body="false" :before-close="formCancel">
+	    <zj-form-container ref="formRef" :form-data="formData" :styleSwitch="false">
+	      <zj-form-module :title="formDialogTitles[formDialogType]" label-width="100px" :showPackUp="false"
+	        :form-data="formData" :form-items="formItems">
+	      </zj-form-module>
+	    </zj-form-container>
+	    <div slot="footer" class="dialog-footer">
+			<el-button v-if="formData.examineStatus == 'WAIT'" size="mini" type="primary" @click="audit('OK')">审核通过</el-button>
+			<el-button v-if="formData.examineStatus == 'WAIT'" size="mini" type="danger" @click="audit('FAIL')">审核驳回</el-button>
+			<el-button size="mini" @click="formCancel">取 消</el-button>
+	    </div>
+	  </el-dialog>
+	</template-page>
 </template>
 
 <script>
 import TemplatePage from '@/components/template/template-page-1.vue'
 import import_mixin from '@/components/template/import_mixin.js'
 import { required, mobileRequired, mobile } from '@/components/template/rules_verify.js'
-import { memberListPageV2,memberPageExport, addMember, deleteMember, editMember, getMemberDetail } from "@/api/masterManagement";
+import { memberListPageV2,memberPageExport, getMemberDetail, memberAudit, memberInner } from "@/api/masterManagement";
 export default {
   components: { TemplatePage },
   mixins: [import_mixin],
@@ -45,10 +55,10 @@ export default {
       formDialogTitles: ["审核", "详情"],
       formDialog: false,
       formData: {
-        storageName: '',
-        storageMobile: '',
-        storageAddress: '',
+		type: '工程师',
+		examineRemark: ''
       },
+	  examineStatus: ''
     }
   },
   computed: {
@@ -60,18 +70,19 @@ export default {
       return [{
         md: 12,
         isShow: true,
-        name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        name: 'el-select',
+		options: [{label: '待审核', value: 'WAIT'},{label: '驳回', value: 'FAIL'},{label: '通过', value: 'OK'}],
+        attributes: { placeholder: '请输入', disabled: true },
         formItemAttributes: {
           label: '审核状态',
-          prop: 'examine_status',
+          prop: 'examineStatus',
           rules: []
-        }
+        },
       }, {
         md: 12,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { disabled: true },
         formItemAttributes: {
           label: '用户类型',
           prop: 'type',
@@ -81,17 +92,17 @@ export default {
         md: 12,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { placeholder: '请输入', disabled: true },
         formItemAttributes: {
           label: '用户名称',
-          prop: 'nick_name',
+          prop: 'nickName',
           rules: []
         }
       }, {
         md: 12,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { placeholder: '请输入', disabled: true },
         formItemAttributes: {
           label: '联系电话',
           prop: 'mobile',
@@ -101,27 +112,27 @@ export default {
         md: 12,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { placeholder: '请输入', disabled: true },
         formItemAttributes: {
           label: '身份证号码',
-          prop: 'id_card',
+          prop: 'idCard',
           rules: []
         }
       }, {
         md: 12,
         isShow: true,
-        name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        name: 'el-image',
+        attributes: { src: this.formData.idCardImg },
         formItemAttributes: {
           label: '身份证',
-          prop: 'id_card_img',
+          prop: 'idCardImg',
           rules: []
-        }
+        },
       }, {
         md: 12,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { placeholder: '请输入', disabled: true },
         formItemAttributes: {
           label: '所属商户',
           prop: 'companyName',
@@ -131,28 +142,42 @@ export default {
         md: 12,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { placeholder: '请输入', disabled: true },
         formItemAttributes: {
           label: '入驻网点',
-          prop: 'mobile',
+          prop: 'websitName',
           rules: []
         }
       }, {
         md: 24,
         isShow: true,
         name: 'el-input',
-        attributes: { placeholder: '请输入' },
+        attributes: { placeholder: '请输入',type: "textarea", disabled: this.formData.examineStatus == 'WAIT' ? false:true },
         formItemAttributes: {
           label: '备注',
-          prop: 'mobile',
+          prop: 'examineRemark',
           rules: []
         }
       }]
     }
   },
   methods: {
+	// 切换状态
+	changeType(val) {
+	  this.$refs.pageRef.refreshList()
+	},
     // 列表请求函数
-    getList: memberListPageV2,
+	getList(p) {
+	  try {
+	    var pam = JSON.parse(JSON.stringify(p))
+	    if (this.examineStatus) {
+	      pam.params.push({ "param": "b.examine_status", "compare": "=", "value": this.examineStatus })
+	    }
+	    return memberListPageV2(pam)
+	  } catch (error) {
+	    console.log(error)
+	  }
+	},
     // 列表导出函数
     exportList: memberPageExport,
     // 表格列解析渲染数据更改
@@ -167,20 +192,58 @@ export default {
     operation(h, { row, index, column }) {
       return (
         <div class='operation-btns'>
-          <el-button type="text" onClick={() => {
-            getMemberDetail({ id: row.userId }).then(res => {
+          {row.examineStatus == 'WAIT' ? <el-button type="text" onClick={() => {
+            getMemberDetail({ id: row.id }).then(res => {
               Object.assign(this.formData, res.data)
               this.formDialogType = 0
               this.openForm()
             })
-          }}>审核</el-button>
+          }}>审核</el-button> : null}
           <el-button type="text" onClick={() => {
-            getMemberDetail({ id: row.userId }).then(res => {
+            getMemberDetail({ id: row.id }).then(res => {
               Object.assign(this.formData, res.data)
               this.formDialogType = 1
               this.openForm()
             })
           }}>详情</el-button>
+		  <el-button type="text" onClick={() => {
+			this.$confirm('请确认是否设为分销员, 是否继续?', '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+				memberInner({
+					type: 'SERVICE',
+					userIds: row.userId
+				}).then(res => {
+					if (res.code == 1) {
+						this.$message({ type: 'success', message: '设为分销员成功!' })
+						this.$refs.pageRef.refreshList()
+					} else {
+						this.$message.error(res.msg);
+					}
+				})
+			});
+		  }}>设为分销员</el-button>
+		  <el-button type="text" onClick={() => {
+			this.$confirm('请确认是否设为客户, 是否继续?', '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+				memberInner({
+					type: 'GENERAL',
+					userIds: row.userId
+				}).then(res => {
+					if (res.code == 1) {
+						this.$message({ type: 'success', message: '设为客户成功!' })
+						this.$refs.pageRef.refreshList()
+					} else {
+						this.$message.error(res.msg);
+					}
+				})
+			});
+		  }}>设为客户</el-button>
         </div>
       )
     },
@@ -196,10 +259,30 @@ export default {
       this.$data.formData = this.$options.data().formData
       this.formDialog = false
     },
+	audit(examineStatusEnum){
+		memberAudit({ 
+			examineStatusEnum,
+			examineRemark: this.formData.examineRemark,
+			id: this.formData.id
+		}).then(res => {
+			this.$message({ type: 'success', message: '审核成功!' })
+			this.formCancel()
+			this.$refs.pageRef.refreshList()
+		})
+	},
+	memberInner(type){
+		memberInner({
+			type,
+			userIds: this.formData.userId
+		}).then(res => {
+			this.$message({ type: 'success', message: '设置成功!' })
+			this.$refs.pageRef.refreshList()
+		})
+	},
     formConfirm() {
       this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
         if (valid) {
-          ([addMember, editMember][this.formDialogType])(this.formData).then(res => {
+          ([memberAudit][this.formDialogType])(this.formData).then(res => {
             this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
             this.formCancel()
             this.$refs.pageRef.refreshList()
@@ -211,4 +294,8 @@ export default {
 }
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+	.tab{
+		padding: 20px 20px 0 20px;
+	}
+</style>