pengyh 1 rok pred
rodič
commit
219f46f468

+ 64 - 0
src/api/customerManagement.js

@@ -0,0 +1,64 @@
+import request, { postBlob } from '@/utils/request'
+
+// 获取师傅列表
+export function memberListPageV2(params) {
+  return request({
+    url: `/member/wx/list`,
+    method: 'get',
+    params
+  })
+}
+
+export function memberPageExport(data, name) {
+  return postBlob({
+    url: '/member/pageExport',
+    data,
+    name
+  })
+}
+
+
+// 获取仓储列表
+export function getList(params) {
+  return request({
+    url: '/member/list',
+    method: 'get',
+    params
+  })
+}
+
+// 删除仓储
+export function deleteMember(params) {
+  return request({
+    url: '/member/delete',
+    method: 'post',
+    params
+  })
+}
+
+// 新增仓储
+export function addMember(params) {
+  return request({
+    url: '/member/add',
+    method: 'post',
+    data: params
+  })
+}
+
+// 编辑仓储
+export function editMember(params) {
+  return request({
+    url: '/member/update',
+    method: 'post',
+    data: params
+  })
+}
+
+// 获取仓储详情
+export function getMemberDetail(params) {
+  return request({
+    url: '/member/detail',
+    method: 'get',
+    params
+  })
+}

+ 19 - 0
src/api/distributorManagement.js

@@ -0,0 +1,19 @@
+import request, { postBlob } from '@/utils/request'
+
+// 获取师傅列表
+export function memberListService2(data) {
+  return request({
+    url: `/member/list/service2?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+export function memberPageExport(data, name) {
+  return postBlob({
+    url: '/member/pageExport',
+    data,
+    name
+  })
+}
+

+ 64 - 0
src/api/masterManagement.js

@@ -0,0 +1,64 @@
+import request, { postBlob } from '@/utils/request'
+
+// 获取师傅列表
+export function memberListPageV2(data) {
+  return request({
+    url: `/member/list/page2?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+export function memberPageExport(data, name) {
+  return postBlob({
+    url: '/member/pageExport',
+    data,
+    name
+  })
+}
+
+
+// 获取仓储列表
+export function getList(params) {
+  return request({
+    url: '/member/list',
+    method: 'get',
+    params
+  })
+}
+
+// 删除仓储
+export function deleteMember(params) {
+  return request({
+    url: '/member/delete',
+    method: 'post',
+    params
+  })
+}
+
+// 新增仓储
+export function addMember(params) {
+  return request({
+    url: '/member/add',
+    method: 'post',
+    data: params
+  })
+}
+
+// 编辑仓储
+export function editMember(params) {
+  return request({
+    url: '/member/update',
+    method: 'post',
+    data: params
+  })
+}
+
+// 获取仓储详情
+export function getMemberDetail(params) {
+  return request({
+    url: '/member/detail',
+    method: 'get',
+    params
+  })
+}

+ 158 - 2
src/views/userManagement/customerManagement/index.vue

@@ -1,12 +1,168 @@
 <template>
-  <div>{{$route.name}}</div>
+  <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>
+
 <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/customerManagement";
 export default {
+  components: { TemplatePage },
+  mixins: [import_mixin],
   data() {
     return {
+      // 事件组合
+      optionsEvensGroup: [
+        [
+          [
+            {
+              name: '新建',
+              isRole: true,
+              click: this.addData
+            }
+          ],
+        ],
+      ],
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: false
+      },
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      // 勾选选中行
+      recordSelected: [],
+      /** 表单变量 */
+      formDialogType: 0,
+      formDialogTitles: ["新增", "编辑"],
+      formDialog: false,
+      formData: {
+        storageName: '',
+        storageMobile: '',
+        storageAddress: '',
+      },
     }
   },
+  computed: {
+    // 更多参数
+    moreParameters() {
+      return []
+    },
+    formItems() {
+      return [{
+        md: 24,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '仓储名称',
+          prop: 'storageName',
+          rules: [...required]
+        }
+      }, {
+        md: 24,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '仓储电话',
+          prop: 'storageMobile',
+          rules: [...mobile]
+        }
+      }, {
+        md: 24,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '仓储地址',
+          prop: 'storageAddress',
+          rules: []
+        }
+      }]
+    }
+  },
+  methods: {
+    // 列表请求函数
+    getList: memberListPageV2,
+    // 列表导出函数
+    exportList: memberPageExport,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    },
+    // 表格操作列
+    operation(h, { row, index, column }) {
+      return (
+        <div class='operation-btns'>
+          <el-button type="text" onClick={() => {
+            getMemberDetail({ id: row.storageId }).then(res => {
+              Object.assign(this.formData, res.data)
+              this.formDialogType = 1
+              this.openForm()
+            })
+          }}>编辑</el-button>
+          <el-popconfirm
+            title="确定删除吗?"
+            onConfirm={() => {
+              deleteMember({ storageId: row.storageId }).then(() => {
+                this.$message({ type: 'success', message: '删除成功!' })
+                this.$refs.pageRef.refreshList()
+              })
+            }}
+          >
+            <el-button type="text" slot="reference">删除</el-button>
+          </el-popconfirm>
+        </div>
+      )
+    },
+    addData() {
+      this.formDialogType = 0
+      this.openForm()
+    },
+    openForm() {
+      this.formDialog = true;
+    },
+    formCancel() {
+      this.$refs.formRef.$refs.inlineForm.clearValidate()
+      this.$data.formData = this.$options.data().formData
+      this.formDialog = false
+    },
+    formConfirm() {
+      this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
+        if (valid) {
+          ([addMember, editMember][this.formDialogType])(this.formData).then(res => {
+            this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
+            this.formCancel()
+            this.$refs.pageRef.refreshList()
+          })
+        }
+      })
+    }
+  }
 }
 </script>
-<style></style>
+
+<style lang="scss" scoped></style>

+ 204 - 2
src/views/userManagement/distributorManagement/index.vue

@@ -1,12 +1,214 @@
 <template>
-  <div>{{$route.name}}</div>
+  <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>
+
 <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 { memberListService2,memberPageExport, addMember, deleteMember, editMember, getMemberDetail } from "@/api/distributorManagement";
 export default {
+  components: { TemplatePage },
+  mixins: [import_mixin],
   data() {
     return {
+      // 事件组合
+      optionsEvensGroup: [],
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: false
+      },
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      // 勾选选中行
+      recordSelected: [],
+      /** 表单变量 */
+      formDialogType: 0,
+      formDialogTitles: ["审核", "详情"],
+      formDialog: false,
+      formData: {
+        storageName: '',
+        storageMobile: '',
+        storageAddress: '',
+      },
     }
   },
+  computed: {
+    // 更多参数
+    moreParameters() {
+      return []
+    },
+    formItems() {
+      return [{
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '审核状态',
+          prop: 'examine_status',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '用户类型',
+          prop: 'type',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '用户名称',
+          prop: 'nick_name',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '联系电话',
+          prop: 'mobile',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '身份证号码',
+          prop: 'id_card',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '身份证',
+          prop: 'id_card_img',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        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: '请输入' },
+        formItemAttributes: {
+          label: '备注',
+          prop: 'mobile',
+          rules: []
+        }
+      }]
+    }
+  },
+  methods: {
+    // 列表请求函数
+    getList: memberListService2,
+    // 列表导出函数
+    exportList: memberPageExport,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    },
+    // 表格操作列
+    operation(h, { row, index, column }) {
+      return (
+        <div class='operation-btns'>
+          <el-button type="text" onClick={() => {
+            getMemberDetail({ id: row.userId }).then(res => {
+              Object.assign(this.formData, res.data)
+              this.formDialogType = 0
+              this.openForm()
+            })
+          }}>审核</el-button>
+          <el-button type="text" onClick={() => {
+            getMemberDetail({ id: row.userId }).then(res => {
+              Object.assign(this.formData, res.data)
+              this.formDialogType = 1
+              this.openForm()
+            })
+          }}>详情</el-button>
+        </div>
+      )
+    },
+    addData() {
+      this.formDialogType = 0
+      this.openForm()
+    },
+    openForm() {
+      this.formDialog = true;
+    },
+    formCancel() {
+      this.$refs.formRef.$refs.inlineForm.clearValidate()
+      this.$data.formData = this.$options.data().formData
+      this.formDialog = false
+    },
+    formConfirm() {
+      this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
+        if (valid) {
+          ([addMember, editMember][this.formDialogType])(this.formData).then(res => {
+            this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
+            this.formCancel()
+            this.$refs.pageRef.refreshList()
+          })
+        }
+      })
+    }
+  }
 }
 </script>
-<style></style>
+
+<style lang="scss" scoped></style>

+ 204 - 2
src/views/userManagement/masterManagement/index.vue

@@ -1,12 +1,214 @@
 <template>
-  <div>{{$route.name}}</div>
+  <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>
+
 <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";
 export default {
+  components: { TemplatePage },
+  mixins: [import_mixin],
   data() {
     return {
+      // 事件组合
+      optionsEvensGroup: [],
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: false
+      },
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      // 勾选选中行
+      recordSelected: [],
+      /** 表单变量 */
+      formDialogType: 0,
+      formDialogTitles: ["审核", "详情"],
+      formDialog: false,
+      formData: {
+        storageName: '',
+        storageMobile: '',
+        storageAddress: '',
+      },
     }
   },
+  computed: {
+    // 更多参数
+    moreParameters() {
+      return []
+    },
+    formItems() {
+      return [{
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '审核状态',
+          prop: 'examine_status',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '用户类型',
+          prop: 'type',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '用户名称',
+          prop: 'nick_name',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '联系电话',
+          prop: 'mobile',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '身份证号码',
+          prop: 'id_card',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        formItemAttributes: {
+          label: '身份证',
+          prop: 'id_card_img',
+          rules: []
+        }
+      }, {
+        md: 12,
+        isShow: true,
+        name: 'el-input',
+        attributes: { placeholder: '请输入' },
+        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: '请输入' },
+        formItemAttributes: {
+          label: '备注',
+          prop: 'mobile',
+          rules: []
+        }
+      }]
+    }
+  },
+  methods: {
+    // 列表请求函数
+    getList: memberListPageV2,
+    // 列表导出函数
+    exportList: memberPageExport,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    },
+    // 表格操作列
+    operation(h, { row, index, column }) {
+      return (
+        <div class='operation-btns'>
+          <el-button type="text" onClick={() => {
+            getMemberDetail({ id: row.userId }).then(res => {
+              Object.assign(this.formData, res.data)
+              this.formDialogType = 0
+              this.openForm()
+            })
+          }}>审核</el-button>
+          <el-button type="text" onClick={() => {
+            getMemberDetail({ id: row.userId }).then(res => {
+              Object.assign(this.formData, res.data)
+              this.formDialogType = 1
+              this.openForm()
+            })
+          }}>详情</el-button>
+        </div>
+      )
+    },
+    addData() {
+      this.formDialogType = 0
+      this.openForm()
+    },
+    openForm() {
+      this.formDialog = true;
+    },
+    formCancel() {
+      this.$refs.formRef.$refs.inlineForm.clearValidate()
+      this.$data.formData = this.$options.data().formData
+      this.formDialog = false
+    },
+    formConfirm() {
+      this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
+        if (valid) {
+          ([addMember, editMember][this.formDialogType])(this.formData).then(res => {
+            this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
+            this.formCancel()
+            this.$refs.pageRef.refreshList()
+          })
+        }
+      })
+    }
+  }
 }
 </script>
-<style></style>
+
+<style lang="scss" scoped></style>