whj 1 year ago
parent
commit
f35efc60e6

+ 17 - 1
src/api/store/sparestore.js

@@ -60,7 +60,23 @@ export function addSpareStore (parameter) {
     data: parameter
   })
 }
-
+/**
+ * add func
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function addSpare (parameter) {
+  return axios({
+    url: '/yongyou/add/spare',
+    method: 'POST',
+    headers: {
+      'Accept': 'application/json',
+      'Content-Type': 'application/json;charset=UTF-8'
+    },
+    data: parameter
+  })
+}
 /**
  * update func
  * parameter: { }

+ 6 - 1
src/utils/dict.js

@@ -332,7 +332,12 @@ DictCache.TYPE = {
   SB_CHANGE_LOG_TYPE: 'SB_CHANGE_LOG_TYPE',
   CHECK_TYPE: 'CHECK_TYPE', // 强检,
   PROJECT_NEW_AND_OLD: 'PROJECT_NEW_AND_OLD', // 厂区
-  LONG_YAN_PURCHASE_TYPE: 'LONG_YAN_PURCHASE_TYPE'
+  LONG_YAN_PURCHASE_TYPE: 'LONG_YAN_PURCHASE_TYPE',
+  // 物料
+  PLAN_DEFAULT: 'PLAN_DEFAULT', // 计划默认属性
+  DRAW_TYPE: 'DRAW_TYPE', // 领料方式
+  SUPPLY_TYPE: 'SUPPLY_TYPE', // 供应类型
+  GROUP_TYPE: 'GROUP_TYPE' // 计量单位组类别
 }
 DictCache.CODE = {
 

+ 535 - 0
src/views/store/sparestore/modules/AddSpareForm.vue

@@ -0,0 +1,535 @@
+<template>
+  <a-modal
+    :title="title"
+    :width="1000"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    @cancel="handleCancel"
+  >
+    <a-form :form="form">
+      <row-list :col="2">
+        <row-item>
+          <a-form-item
+            label="存货编码"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cInvCode', {rules: [{required: true, message: '存货编码不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="存货代码"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cInvAddCode', {rules: [{required: true, message: '存货代码不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="存货名称"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cInvName', {rules: [{required: true, message: '存货名称不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+
+        <row-item>
+          <a-form-item
+            label="规格型号"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cInvStd', {rules: [{required: true, message: '规格型号不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="存货分类编码"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cInvCCode', {rules: [{required: true, message: '存货分类编码不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="计量单位组编码"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cGroupCode', {rules: [{required: true, message: '计量单位组编码不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="主计量单位编码"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cComUnitCode', {rules: [{required: true, message: '主计量单位编码不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="零售计量单位"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cShopUnit', {rules: [{required: true, message: '零售计量单位不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="生产部门"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cInvDepCode', {rules: [{required: true, message: '生产部门不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="计价方式"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cValueType', {rules: [{required: true, message: '计价方式不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="启用日期"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['dSDate', {rules: [{required: true, message: '启用日期不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="供需政策"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cSRPolicy', {rules: [{required: true, message: '供需政策不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="计划方法"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cPanMethod', {rules: [{required: true, message: '计划方法不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="存货自定义项1"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cInvDefine1', {rules: [{required: true, message: '存货自定义项1不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="是否销售"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['bSale', {rules: [{required: true, message: '是否销售不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="parseInt(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="是否自制"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['bSelf', {rules: [{required: true, message: '是否自制不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="Boolean(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="是否生产耗用"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['bComsume', {rules: [{required: true, message: '是否生产耗用不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="Boolean(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="计量单位组类别"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['iGroupType', {rules: [{required: true, message: '计量单位组类别用不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in groupTypeMap"
+                :key="value"
+                :label="label"
+                :value="parseInt(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="是否外购"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['bPurchase', {rules: [{required: true, message: '是否外购不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="Boolean(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="采购默认计量单位编码"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cPUComUnitCode', {rules: [{required: true, message: '采购默认计量单位编码不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="销售默认计量单位编码"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cSAComUnitCode', {rules: [{required: true, message: '销售默认计量单位编码不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="库存默认计量单位编码"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cSTComUnitCode', {rules: [{required: true, message: '库存默认计量单位编码不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="成本默认计量单位编码,"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              v-decorator="['cCAComUnitCode', {rules: [{required: true, message: '成本默认计量单位编码不能为空'}]}]" />
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="领料方式"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['iDrawType', {rules: [{required: true, message: '领料方式不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in drawTypeMap"
+                :key="value"
+                :label="label"
+                :value="parseInt(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="供应类型"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['iSupplyType', {rules: [{required: true, message: '供应类型不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in supplyTypeMap"
+                :key="value"
+                :label="label"
+                :value="parseInt(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="是否批次管理"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['bInvBatch', {rules: [{required: true, message: '是否批次管理不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="Boolean(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="需求跟踪方式"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['iRequireTrackStyle', {rules: [{required: true, message: '需求跟踪方式不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="Boolean(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="允许BOM母件"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['bBomMain', {rules: [{required: true, message: '允许BOM母件不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="Boolean(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="允许BOM子件"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['bBomSub', {rules: [{required: true, message: '允许BOM子件不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="Boolean(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="允许生产订单"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['bProductBill', {rules: [{required: true, message: '允许生产订单不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="Boolean(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="计划默认属性"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['iPlanDefault', {rules: [{required: true, message: '计划默认属性不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in planDefaultMap"
+                :key="value"
+                :label="label"
+                :value="parseInt(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="存货是否有自由项1"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['bFree1', {rules: [{required: true, message: '存货是否有自由项1不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="Boolean(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="存货是否有自由项2"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['bFree2', {rules: [{required: true, message: '存货是否有自由项2不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="Boolean(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+        <row-item>
+          <a-form-item
+            label="存货是否有自由项3"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['bFree3', {rules: [{required: true, message: '存货是否有自由项3不能为空'}]}]">
+              <a-select-option
+                v-for="(label,value) in yesOrNo"
+                :key="value"
+                :label="label"
+                :value="Boolean(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </row-item>
+      </row-list>
+    </a-form>
+    <template slot="footer">
+      <a-button :loading="confirmLoading" type="primary" @click="handleCancel()">取消</a-button>
+      <a-button :loading="confirmLoading" type="primary" @click="save()">保存</a-button>
+    </template>
+  </a-modal>
+</template>
+
+<script>
+import pick from 'lodash.pick'
+import { addSpare } from '@/api/store/sparestore'
+
+export default {
+  data () {
+    return {
+      title: '',
+      visible: false,
+      confirmLoading: false,
+      form: this.$form.createForm(this),
+      yesOrNo: {},
+      planDefaultMap: {},
+      drawTypeMap: {},
+      supplyTypeMap: {},
+      groupTypeMap: {}
+
+    }
+  },
+  created () {
+    this.yesOrNo = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
+    this.planDefaultMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.PLAN_DEFAULT)
+    this.drawTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.DRAW_TYPE)
+    this.supplyTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SUPPLY_TYPE)
+    this.groupTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.GROUP_TYPE)
+  },
+  methods: {
+    base (record) {
+      this.visible = true
+      // 如果是空标识添加
+      if (this.BaseTool.Object.isBlank(record)) {
+        this.title = '添加'
+        return
+      }
+      this.title = '编辑'
+      const { form: { setFieldsValue } } = this
+      // 日期处理
+      this.$nextTick(() => {
+        setFieldsValue(Object.assign(pick(record, [
+          'id'
+        ])))
+      })
+    },
+    save () {
+      const { form: { validateFieldsAndScroll } } = this
+      this.confirmLoading = true
+      validateFieldsAndScroll((errors, values) => {
+        if (errors) {
+          this.confirmLoading = false
+          return
+        }
+        // 日期处理
+        if (this.BaseTool.String.isBlank(values.id)) {
+          addSpare(values)
+            .then(() => {
+              this.handleCancel(values)
+            }).catch(() => {
+              this.confirmLoading = false
+            })
+        } else {
+
+        }
+      })
+    },
+    handleCancel (values) {
+      this.visible = false
+      this.confirmLoading = false
+      this.form.resetFields()
+      if (this.BaseTool.Object.isNotBlank(values)) {
+        this.$emit('ok', values)
+      }
+    }
+  }
+}
+</script>
+
+<style>
+
+</style>

+ 5 - 5
src/views/store/sparestore/modules/SpareStoreSelectModalYY.vue

@@ -82,11 +82,13 @@
       <a-button :loading="confirmLoading" type="primary" @click="handleCancel()">取消</a-button>
       <a-button :loading="confirmLoading" type="primary" @click="handleSelect()">选择</a-button>
     </template>
+    <AddSpareForm ref="addSpareForm" @ok="handleOk" />
   </a-modal>
 </template>
 
 <script>
 import { STable, Ellipsis } from '@/components'
+import AddSpareForm from './AddSpareForm'
 import Detail from './Detail'
 import { fetchSpareTypeTree } from '@/api/sqarepartmanage/sparetype'
 import { fetchStoreTree } from '@/api/store/store'
@@ -97,7 +99,8 @@ export default {
   components: {
     STable,
     Ellipsis,
-    Detail
+    Detail,
+    AddSpareForm
   },
   props: {
     type: {
@@ -333,10 +336,7 @@ export default {
       this.autoExpandParent = false
     },
     handleAdd () {
-      const a = document.createElement('a')
-      a.href = '/spare/part/info'
-      a.target = '_about'
-      a.click()
+      this.$refs.addSpareForm.base()
     }
   }
 }