|
@@ -0,0 +1,308 @@
|
|
|
+<template>
|
|
|
+ <template-page
|
|
|
+ v-if="pageShow"
|
|
|
+ ref="pageRef"
|
|
|
+ :get-list="getList"
|
|
|
+ :exportList="exportList"
|
|
|
+ :table-attributes="tableAttributes"
|
|
|
+ :table-events="tableEvents"
|
|
|
+ :options-evens-group="optionsEvensGroup"
|
|
|
+ :moreParameters="moreParameters"
|
|
|
+ :column-parsing="columnParsing"
|
|
|
+ :operation="operation()"
|
|
|
+ key="pageType"
|
|
|
+ >
|
|
|
+ <div class="cartographer_big">
|
|
|
+ <el-dialog
|
|
|
+ title="设置师傅组别"
|
|
|
+ width="100%"
|
|
|
+ :modal="false"
|
|
|
+ :visible.sync="formDialog"
|
|
|
+ :before-close="handleClose"
|
|
|
+ >
|
|
|
+ <zj-page-container>
|
|
|
+ <zj-page-fill>
|
|
|
+ <div style="box-sizing: border-box; padding: 20px 20px 0 20px">
|
|
|
+ <zj-form-container ref="formRef" :form-data="formData" :form-attributes="{ size: 'mini' }">
|
|
|
+ <zj-form-module title="师傅组" label-width="100px" :form-data="formData" :form-items="formItems">
|
|
|
+ </zj-form-module>
|
|
|
+ </zj-form-container>
|
|
|
+ </div>
|
|
|
+ </zj-page-fill>
|
|
|
+ <div style="text-align: right; box-sizing: border-box; padding: 16px 20px">
|
|
|
+ <el-button size="mini" @click="handleClose">取消</el-button>
|
|
|
+ <el-button size="mini" type="primary" @click="save">保存</el-button>
|
|
|
+ </div>
|
|
|
+ </zj-page-container>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+ </template-page>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import TemplatePage from '@/components/template/template-page-1.vue'
|
|
|
+import import_mixin from '@/components/template/import_mixin.js'
|
|
|
+import operation_mixin from '@/components/template/operation_mixin.js'
|
|
|
+import {
|
|
|
+ workerTeamList,
|
|
|
+ workerTeamListExport,
|
|
|
+ workerTeamAdd,
|
|
|
+ workerTeamUpdate,
|
|
|
+ workerTeamImport,
|
|
|
+ workerTeamQueryWebsitWorker
|
|
|
+} from '@/api/masterGroup.js'
|
|
|
+import { commonTemplateDownload } from '@/api/common.js'
|
|
|
+import { getWebsit } from '@/api/customerManagement.js'
|
|
|
+import { required, requiredValueMin } from '@/components/template/rules_verify.js'
|
|
|
+export default {
|
|
|
+ components: { TemplatePage },
|
|
|
+ mixins: [import_mixin, operation_mixin],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ pageType: 'list',
|
|
|
+ pageShow: true,
|
|
|
+ // 表格属性
|
|
|
+ tableAttributes: {
|
|
|
+ // 启用勾选列
|
|
|
+ selectColumn: false
|
|
|
+ },
|
|
|
+ // 表格事件
|
|
|
+ tableEvents: {
|
|
|
+ 'selection-change': this.selectionChange
|
|
|
+ },
|
|
|
+ // 勾选选中行
|
|
|
+ recordSelected: [],
|
|
|
+ /** 表单变量 */
|
|
|
+ formDialog: false,
|
|
|
+ formData: {
|
|
|
+ assistantWorkerId: '',
|
|
|
+ assistantWorkerName: '',
|
|
|
+ companyWechatId: '',
|
|
|
+ companyWechatName: '',
|
|
|
+ masterWorkerId: '',
|
|
|
+ masterWorkerName: '',
|
|
|
+ status: 'ON',
|
|
|
+ websitId: ''
|
|
|
+ },
|
|
|
+ websitList: [],
|
|
|
+ workerTeamQueryWebsitWorkerList: []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ // 事件组合
|
|
|
+ optionsEvensGroup() {
|
|
|
+ return [
|
|
|
+ [
|
|
|
+ [
|
|
|
+ this.optionsEvensAuth('add', {
|
|
|
+ click: this.openForm
|
|
|
+ })
|
|
|
+ ]
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ [
|
|
|
+ this.optionsEvensAuth('import', ({ moduleName }) => {
|
|
|
+ return {
|
|
|
+ name: moduleName,
|
|
|
+ render: () => {
|
|
|
+ return this.importButton(workerTeamImport, moduleName)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ this.optionsEvensAuth('template', {
|
|
|
+ click: () => {
|
|
|
+ commonTemplateDownload({ name: '师傅组队导入模板.xlsx' }, `${this.$route.meta.title}`)
|
|
|
+ .then(res => {
|
|
|
+ this.$message({
|
|
|
+ message: '下载成功',
|
|
|
+ type: 'success'
|
|
|
+ })
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ this.$message.error('下载失败')
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ // 更多参数
|
|
|
+ moreParameters() {
|
|
|
+ return []
|
|
|
+ },
|
|
|
+ formItems() {
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ name: 'el-select',
|
|
|
+ md: 12,
|
|
|
+ options: this.websitList.map(item => ({ label: `(${item.websitId})${item.name}`, value: item.websitId })),
|
|
|
+ attributes: {
|
|
|
+ clearable: true,
|
|
|
+ filterable: true,
|
|
|
+ disabled: false,
|
|
|
+ placeholder: '请输入'
|
|
|
+ },
|
|
|
+ formItemAttributes: {
|
|
|
+ label: '所属网点',
|
|
|
+ prop: 'websitId',
|
|
|
+ rules: [...required]
|
|
|
+ },
|
|
|
+ events: {
|
|
|
+ change: val => {
|
|
|
+ this.formData.masterWorkerId = ''
|
|
|
+ this.formData.masterWorkerName = ''
|
|
|
+ this.formData.assistantWorkerId = ''
|
|
|
+ this.formData.assistantWorkerName = ''
|
|
|
+ this.workerTeamQueryWebsitWorkerList = []
|
|
|
+ if (val) {
|
|
|
+ workerTeamQueryWebsitWorker({ websitId: val }).then(res => {
|
|
|
+ this.workerTeamQueryWebsitWorkerList = res.data
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'el-select',
|
|
|
+ md: 12,
|
|
|
+ options: this.workerTeamQueryWebsitWorkerList.map(item => ({
|
|
|
+ label: item.workerNumber ? `(${item.workerNumber})${item.workerName}` : item.workerName,
|
|
|
+ value: item.workerId,
|
|
|
+ disabled: item.workerId == this.formData.assistantWorkerId
|
|
|
+ })),
|
|
|
+ // .filter(item => item.workerId != this.formData.assistantWorkerId)
|
|
|
+ attributes: {
|
|
|
+ clearable: true,
|
|
|
+ filterable: true,
|
|
|
+ placeholder: '请输入',
|
|
|
+ disabled: !this.formData.websitId
|
|
|
+ },
|
|
|
+ formItemAttributes: {
|
|
|
+ label: '选择大工',
|
|
|
+ prop: 'masterWorkerId',
|
|
|
+ rules: [...required]
|
|
|
+ },
|
|
|
+ events: {
|
|
|
+ change: val => {
|
|
|
+ this.formData.masterWorkerName = this.workerTeamQueryWebsitWorkerList?.find(
|
|
|
+ item => item.workerId === val
|
|
|
+ )?.workerName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'el-select',
|
|
|
+ md: 12,
|
|
|
+ options: this.workerTeamQueryWebsitWorkerList.map(item => ({
|
|
|
+ label: item.workerNumber ? `(${item.workerNumber})${item.workerName}` : item.workerName,
|
|
|
+ value: item.workerId,
|
|
|
+ disabled: item.workerId == this.formData.masterWorkerId
|
|
|
+ })),
|
|
|
+ //.filter(item => item.workerId != this.formData.masterWorkerId)
|
|
|
+ attributes: {
|
|
|
+ clearable: true,
|
|
|
+ filterable: true,
|
|
|
+ placeholder: '请输入',
|
|
|
+ disabled: !this.formData.masterWorkerId
|
|
|
+ },
|
|
|
+ formItemAttributes: {
|
|
|
+ label: '选择小工',
|
|
|
+ prop: 'assistantWorkerId',
|
|
|
+ rules: [...required]
|
|
|
+ },
|
|
|
+ events: {
|
|
|
+ change: val => {
|
|
|
+ this.formData.assistantWorkerName = this.workerTeamQueryWebsitWorkerList?.find(
|
|
|
+ item => item.workerId === val
|
|
|
+ )?.workerName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ md: 12,
|
|
|
+ isShow: true,
|
|
|
+ name: 'el-radio',
|
|
|
+ options: [
|
|
|
+ { label: '有效', value: 'ON' },
|
|
|
+ { label: '无效', value: 'OFF' }
|
|
|
+ ],
|
|
|
+ attributes: {},
|
|
|
+ formItemAttributes: {
|
|
|
+ label: '状态',
|
|
|
+ prop: 'status',
|
|
|
+ rules: [...required]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ // 列表请求函数
|
|
|
+ getList: workerTeamList,
|
|
|
+ // 列表导出函数
|
|
|
+ exportList: workerTeamListExport,
|
|
|
+ // 表格列解析渲染数据更改
|
|
|
+ columnParsing(item, defaultData) {
|
|
|
+ return defaultData
|
|
|
+ },
|
|
|
+ // 监听勾选变化
|
|
|
+ selectionChange(data) {
|
|
|
+ this.recordSelected = data
|
|
|
+ },
|
|
|
+ // 打开创建弹窗
|
|
|
+ openForm() {
|
|
|
+ Promise.all([getWebsit({ type: 'C', status: true })]).then(([res1]) => {
|
|
|
+ this.websitList = res1.data
|
|
|
+ this.formDialog = true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 打开详情弹窗
|
|
|
+ openDetailForm(row) {
|
|
|
+ Promise.all([
|
|
|
+ getWebsit({ type: 'C', status: true }),
|
|
|
+ workerTeamQueryWebsitWorker({ websitId: row.websitId })
|
|
|
+ ]).then(([res1, res2]) => {
|
|
|
+ this.websitList = res1.data
|
|
|
+ this.workerTeamQueryWebsitWorkerList = res2.data
|
|
|
+ this.formData = { ...row }
|
|
|
+ this.formDialog = true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleClose() {
|
|
|
+ this.$refs?.formRef?.resetFields()
|
|
|
+ this.$data.formData = this.$options.data().formData
|
|
|
+ this.formDialog = false
|
|
|
+ },
|
|
|
+ // 操作按钮
|
|
|
+ operation() {
|
|
|
+ return this.operationBtn({
|
|
|
+ edit: {
|
|
|
+ click: ({ row, index, column }) => {
|
|
|
+ this.openDetailForm(row)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 保存
|
|
|
+ save() {
|
|
|
+ this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
|
|
|
+ if (valid) {
|
|
|
+ ;(this.formData?.id ? workerTeamUpdate : workerTeamAdd)(this.formData).then(res => {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: '保存成功'
|
|
|
+ })
|
|
|
+ this.handleClose()
|
|
|
+ this.$refs.pageRef.refreshList()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped></style>
|