Przeglądaj źródła

feat:新调拨单

zh 2 lat temu
rodzic
commit
8a62cb7938

+ 12 - 0
src/views/supply/transferOrder.vue

@@ -0,0 +1,12 @@
+<template>
+  <div>
+    <keep-alive>
+      <router-view />
+    </keep-alive>
+  </div>
+</template>
+
+<script>
+export default {}
+</script>
+

+ 254 - 0
src/views/supply/transferOrder/transferOrderForm.vue

@@ -0,0 +1,254 @@
+<template>
+  <zj-form-container ref="formRef" :form-data="formData" :form-rules="formRules">
+    <zj-form-module title="调拨单" :form-data="formData" :form-items="formItems" label-width="100px" :column="3" />
+    <zj-form-module title="调拨单明细" :form-items="detailData" label-width="0" :column="3" />
+    <div>
+      <el-button type="primary" size="default" @click="onSubmit">提交</el-button>
+      <el-button size="default" @click="onSave">保存</el-button>
+      <el-button size="default" @click="onReset">重置</el-button>
+    </div>
+  </zj-form-container>
+</template>
+
+<script>
+export default {
+  props: {
+    edit: {
+      type: Boolean,
+      default: false
+    },
+    details: {
+      type: Object,
+      default: () => {
+        return {}
+      }
+    }
+  },
+  data() {
+    return {
+      formData: {
+        categoryType: 'HOME',
+        contractTemplateImg: '',
+        contractTemplateName: '',
+        contractTemplatePdf: '',
+        contractType: 'MAIN',
+        followContractTemplateId: '',
+        followType: '',
+        mainContractUse: 'MAIN',
+        signObj: 'WORKER',
+        status: 'ON',
+        websitId: '',
+        websitName: ''
+      },
+      formRules: {
+        websitId: [{ required: true, message: '必填项', trigger: 'blur' }],
+        categoryType: [{ required: true, message: '必填项', trigger: 'blur' }],
+        contractTemplateImg: [{ required: true, message: '必填项', trigger: 'blur' }],
+        contractTemplateName: [{ required: true, message: '必填项', trigger: 'blur' }],
+        contractTemplatePdf: [{ required: true, message: '必填项', trigger: 'blur' }],
+        contractType: [{ required: true, message: '必填项', trigger: 'blur' }],
+        mainContractUse: [{ required: true, message: '必填项', trigger: 'blur' }],
+        signObj: [{ required: true, message: '必填项', trigger: 'blur' }],
+        status: [{ required: true, message: '必填项', trigger: 'blur' }],
+        followType: [{ required: true, message: '必填项', trigger: 'blur' }]
+      },
+      fileType: ['word', 'excel', 'ppt', 'pdf'],
+      fileList: [],
+      fileList2: [],
+      srcList: [],
+      dict: [],
+      mainContractList: [],
+      serviceProviderList: [],
+      filetype: [],
+      authList: []
+    }
+  },
+  computed: {
+    formItems() {
+      return [
+        {
+          name: 'el-input',
+          md: 6,
+          attributes: {},
+          formItemAttributes: { label: '商家编号', prop: 'contractTemplateName' }
+        },
+        {
+          name: 'el-input',
+          md: 6,
+          attributes: {},
+          formItemAttributes: { label: '商家名称', prop: 'contractTemplateName' }
+        },
+        {
+          name: 'el-date-picker',
+          md: 6,
+          attributes: { type: 'datetime', style: { width: '100%' }, placeholder: '选择日期时间' },
+          formItemAttributes: { label: '调整日期', prop: 'contractTemplateName' }
+        },
+        {
+          name: 'el-input',
+          md: 6,
+          attributes: {},
+          formItemAttributes: { label: '制单人', prop: 'contractTemplateName' }
+        },
+        {
+          name: 'el-input',
+          md: 6,
+          attributes: {},
+          formItemAttributes: { label: '商家编号', prop: 'contractTemplateName' }
+        },
+        {
+          name: 'el-select',
+          options: this.authList,
+          md: 6,
+          attributes: {
+            clearable: true,
+            filterable: true
+          },
+          formItemAttributes: { label: '商家名称', prop: 'websitId' }
+        },
+        {
+          name: 'el-input',
+          md: 6,
+          attributes: {},
+          formItemAttributes: { label: '调拨仓库', prop: 'contractTemplateName' }
+        },
+        {
+          name: 'el-input',
+          md: 6,
+          attributes: {},
+          formItemAttributes: { label: '制单时间', prop: 'contractTemplateName' }
+        },
+        {
+          name: 'el-input',
+          md: 6,
+          attributes: { type: 'textarea', style: { width: '100%' }},
+          formItemAttributes: { label: '备注', prop: 'contractTemplateName' }
+        }
+      ]
+    },
+    detailData() {
+      return [
+        {
+          name: 'slot-component',
+          md: 24,
+          attributes: { disabled: false },
+          formItemAttributes: { label: '', prop: '' },
+          render: (h, { props, onInput }) => {
+            var { value } = props
+            return <zj-table></zj-table>
+          }
+        }
+      ]
+    }
+  },
+  created() {
+    this.getAuthList()
+    this.getTemplateList()
+    // this.getProviderList()
+    this.getTemplateFollowType()
+  },
+  methods: {
+    getAuthList() {
+      getAuthList({
+        pageNum: 1,
+        pageSize: -1
+      }).then(res => {
+        this.authList = res.data.records.map(v => {
+          return {
+            label: v.companyName,
+            value: v.companyCaAuthId
+          }
+        })
+      })
+    },
+    getTemplateList() {
+      getTemplateList({
+        pageNum: 1,
+        pageSize: -1
+      }).then(res => {
+        this.mainContractList = res.data.records.map(v => {
+          return {
+            label: v.contractTemplateName,
+            value: v.contractTemplateId
+          }
+        })
+      })
+    },
+    getProviderList() {
+      getProviderList({
+        pageNum: 1,
+        pageSize: -1
+      }).then(res => {
+        this.serviceProviderList = res.data.records.map(v => {
+          return {
+            label: v.websitName,
+            value: v.websitId
+          }
+        })
+      })
+    },
+    getTemplateFollowType() {
+      getTemplateFollowType().then(res => {
+        for (const key in res.data) {
+          if (Object.hasOwnProperty.call(res.data, key)) {
+            const element = res.data[key]
+            this.filetype.push({
+              label: element,
+              value: key
+            })
+          }
+        }
+      })
+    },
+
+    onReset() {
+      this.fileList.splice(0, 1)
+      this.fileList2.splice(0, 1)
+      this.$refs.formRef.resetFields()
+    },
+    handlerefreshList() {
+      this.$emit('refresh')
+      this.$emit('handleClose')
+    },
+    onClose() {
+      this.$emit('handleClose')
+    },
+    onSubmit() {
+      this.$refs.formRef.validate(valid => {
+        if (valid) {
+          const params = {
+            ...this.formData,
+            websitName: this.authList.find(k => k.value == this.formData.websitId).label
+          }
+
+          if (!this.edit) {
+            params.contractTemplateId = ''
+            addTemplateItem(params).then(res => {
+              this.$successMsg('新增成功')
+              this.handlerefreshList()
+            })
+          } else {
+            updateTemplateItem(params).then(res => {
+              this.$successMsg('编辑成功')
+              this.handlerefreshList()
+            })
+          }
+        } else {
+          console.log('error submit!!')
+          return false
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.header1style {
+  text-align: right;
+  font-size: 12px;
+  color: red;
+  line-height: 18px;
+}
+
+</style>

+ 103 - 0
src/views/supply/transferOrder/transferOrderList.vue

@@ -0,0 +1,103 @@
+<template>
+  <template-page
+    ref="pageRef"
+    :get-list="getList"
+    :export-list="exportList"
+    :operation="operation()"
+    :options-evens-group="optionsEvensGroup"
+    :column-parsing="columnParsing"
+  >
+    <popu v-if="visible">
+      <el-page-header slot="head" content="新增" @back="handleClose" />
+      <transfer-order-form />
+    </popu>
+  </template-page>
+</template>
+
+<script>
+import TemplatePage from '@/components/template/template-page-1.vue'
+import import_mixin from '@/components/template/import_mixin.js'
+import add_callback_mixin from '@/components/template/add_callback_mixin.js'
+import Popu from '@/components/template/popu.vue'
+import TransferOrderForm from './transferOrderForm.vue'
+import { getDealerListV2, exportDealerListV2 } from '@/api/basic_data/dealer'
+export default {
+  components: { TemplatePage, Popu, TransferOrderForm },
+  mixins: [import_mixin, add_callback_mixin],
+  data() {
+    return {
+      visible: false,
+      // 事件组合
+      optionsEvensGroup: [
+        [
+          [
+            {
+              name: '新增',
+              click: this.addOn(() => {
+                this.visible = true
+              }),
+              // isRole: this.$checkBtnRole('add', this.$route.meta.roles)
+            }
+          ]
+        ]
+      ],
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: true
+      }, // 关闭新增弹窗
+
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      recordSelected: [],
+
+      detailsId: ''
+    }
+  },
+  methods: {
+    // 列表请求函数
+    getList(...p) {
+      this.recordSelected = []
+      return getDealerListV2(...p)
+    },
+    // 列表导出函数
+    exportList: exportDealerListV2,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    },
+    operation() {
+      return (h, { row, index, column }) => {
+        return (
+          <div class='operation-btns'>
+            <el-button
+              size='mini'
+              type='text'
+              onClick={ () => {
+                this.visible = true
+                this.detailsId = row.id
+              }}
+            >
+                查看
+            </el-button>
+          </div>
+        )
+      }
+    },
+    handleClose() {
+      this.addOff(() => {
+        this.visible = false
+      })()
+    }
+  }
+}
+</script>
+
+  <style lang="scss" scoped></style>
+