parent
1994989c5a
commit
4aaddcb100
@ -0,0 +1,787 @@
|
||||
<template>
|
||||
<view class="jnpf-wrap jnpf-wrap-form" v-if="!loading">
|
||||
<u-form :model="dataForm" :rules="rules" ref="dataForm" :errorType="['toast']" label-position="left"
|
||||
label-align="right" :label-width="labelwidth" class="jnpf-form">
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomCode')" :required="requiredList.bomCode" label="BOM编号" prop="bomCode">
|
||||
<u-input v-model="dataForm.bomCode" disabled @change="changeData('bomCode',-1)" input-align='right'
|
||||
placeholder="系统自动生成" :style='{"width":"100%"}' readonly>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomName')" :required="requiredList.bomName" label="BOM名称" prop="bomName">
|
||||
<u-input v-model="dataForm.bomName" :disabled="judgeWrite('bomName')"
|
||||
@change="changeData('bomName',-1)" input-align='right' clearable placeholder="请输入"
|
||||
:style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomNm')" :required="requiredList.bomNm" label="BOM简称" prop="bomNm">
|
||||
<u-input v-model="dataForm.bomNm" :disabled="judgeWrite('bomNm')" @change="changeData('bomNm',-1)"
|
||||
input-align='right' clearable placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 ">
|
||||
<u-form-item>
|
||||
<jnpf-group value="加工成品" content="加工成品" contentPosition="left">
|
||||
</jnpf-group>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="jnpf-table" v-if="judgeShow('bomitemList')">
|
||||
<view class="jnpf-table-item" v-for="(item,i) in dataForm.bomItemList" :key="i">
|
||||
<view class="jnpf-table-item-title u-flex u-row-between">
|
||||
<text class="jnpf-table-item-title-num">({{i+1}})</text>
|
||||
<view class="jnpf-table-item-title-action"
|
||||
v-if=" !judgeWrite('bomitemList') && dataForm.bomItemList.length>0"
|
||||
@click="delbomitemList(i)">删除</view>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomitemList-productId')"
|
||||
:required="requiredList['bomitemList-productId']" label="商品名称">
|
||||
<jnpf-popup-select v-model="dataForm.bomItemList[i].productId"
|
||||
:disabled="judgeWrite('bomitemList')||judgeWrite('bomitemList-productId')"
|
||||
@change="changeData('bomitem-productId',i)" :rowIndex="i" :formData="dataForm"
|
||||
:templateJson="interfaceRes.bomitemproductId" hasPage clearable propsValue="id"
|
||||
popupWidth="800px" popupTitle="选择数据商品" popupType="dialog" relationField='name'
|
||||
:vModel="'productId'+i" :columnOptions="bomitemproductIdColumnOptions"
|
||||
interfaceId="519505017699307077" :pageSize="20" placeholder="请选择" type="popup"
|
||||
:style='{"width":"100%"}'>
|
||||
</jnpf-popup-select>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomitemList-spec')" :required="requiredList['bomitemList-spec']"
|
||||
label="商品规格">
|
||||
<u-input v-model="dataForm.bomItemList[i].spec"
|
||||
:disabled="judgeWrite('bomitemList')||judgeWrite('bomitemList-spec')"
|
||||
@change="changeData('bomitem-spec',i)" input-align='right' clearable placeholder="请输入"
|
||||
:style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomitemList-inventoryTypes')"
|
||||
:required="requiredList['bomitemList-inventoryTypes']" label="类型">
|
||||
<u-input v-model="dataForm.bomItemList[i].inventoryTypes"
|
||||
:disabled="judgeWrite('bomitemList')||judgeWrite('bomitemList-inventoryTypes')"
|
||||
@change="changeData('bomitem-inventoryTypes',i)" input-align='right' clearable
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomitemList-inventoryUnitIds')"
|
||||
:required="requiredList['bomitemList-inventoryUnitIds']" label="库存单位">
|
||||
<u-input v-model="dataForm.bomItemList[i].inventoryUnitIds"
|
||||
:disabled="judgeWrite('bomitemList')||judgeWrite('bomitemList-inventoryUnitIds')"
|
||||
@change="changeData('bomitem-inventoryUnitIds',i)" input-align='right' clearable
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomitemList-salesMainUnitIds')"
|
||||
:required="requiredList['bomitemList-salesMainUnitIds']" label="销售单位">
|
||||
<u-input v-model="dataForm.bomItemList[i].salesMainUnitIds"
|
||||
:disabled="judgeWrite('bomitemList')||judgeWrite('bomitemList-salesMainUnitIds')"
|
||||
@change="changeData('bomitem-salesMainUnitIds',i)" input-align='right' clearable
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
</view>
|
||||
<view class="jnpf-table-addBtn" @click="addbomitemList" v-if="!judgeWrite('bomitemList')">
|
||||
<u-icon name="plus" color="#2979ff"></u-icon>
|
||||
<span>{{dataForm.bomItemList.length==0?"添加":"添加"}}</span>
|
||||
</view>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 ">
|
||||
<u-form-item>
|
||||
<jnpf-group value="加工原料" content="加工原料" contentPosition="left">
|
||||
</jnpf-group>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="jnpf-table" v-if="judgeShow('bomitemvalueList')">
|
||||
<view class="jnpf-table-item" v-for="(item,i) in dataForm.bomItemValueList" :key="i">
|
||||
<view class="jnpf-table-item-title u-flex u-row-between">
|
||||
<text class="jnpf-table-item-title-num">({{i+1}})</text>
|
||||
<view class="jnpf-table-item-title-action"
|
||||
v-if=" !judgeWrite('bomitemvalueList') && dataForm.bomItemValueList.length>0"
|
||||
@click="delbomitemvalueList(i)">删除</view>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomitemvalueList-productId')"
|
||||
:required="requiredList['bomitemvalueList-productId']" label="商品名称">
|
||||
<jnpf-popup-select v-model="dataForm.bomItemValueList[i].productId"
|
||||
:disabled="judgeWrite('bomitemvalueList')||judgeWrite('bomitemvalueList-productId')"
|
||||
@change="changeData('bomitemvalue-productId',i)" :rowIndex="i" :formData="dataForm"
|
||||
:templateJson="interfaceRes.bomitemvalueproductId" hasPage clearable propsValue="id"
|
||||
popupWidth="800px" popupTitle="选择数据商品" popupType="dialog" relationField='name'
|
||||
:vModel="'productId'+i" :columnOptions="bomitemvalueproductIdColumnOptions"
|
||||
interfaceId="519505017699307077" :pageSize="20" placeholder="请选择" type="popup"
|
||||
:style='{"width":"100%"}'>
|
||||
</jnpf-popup-select>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomitemvalueList-inventoryTypes')"
|
||||
:required="requiredList['bomitemvalueList-inventoryTypes']" label="存货类型">
|
||||
<u-input v-model="dataForm.bomItemValueList[i].inventoryTypes"
|
||||
:disabled="judgeWrite('bomitemvalueList')||judgeWrite('bomitemvalueList-inventoryTypes')"
|
||||
@change="changeData('bomitemvalue-inventoryTypes',i)" input-align='right' clearable
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomitemvalueList-spec')"
|
||||
:required="requiredList['bomitemvalueList-spec']" label="规格">
|
||||
<u-input v-model="dataForm.bomItemValueList[i].spec"
|
||||
:disabled="judgeWrite('bomitemvalueList')||judgeWrite('bomitemvalueList-spec')"
|
||||
@change="changeData('bomitemvalue-spec',i)" input-align='right' clearable
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomitemvalueList-inventoryUnitIds')"
|
||||
:required="requiredList['bomitemvalueList-inventoryUnitIds']" label="库存单位">
|
||||
<u-input v-model="dataForm.bomItemValueList[i].inventoryUnitIds"
|
||||
:disabled="judgeWrite('bomitemvalueList')||judgeWrite('bomitemvalueList-inventoryUnitIds')"
|
||||
@change="changeData('bomitemvalue-inventoryUnitIds',i)" input-align='right' clearable
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomitemvalueList-barCode')"
|
||||
:required="requiredList['bomitemvalueList-barCode']" label="条码">
|
||||
<u-input v-model="dataForm.bomItemValueList[i].barCode"
|
||||
:disabled="judgeWrite('bomitemvalueList')||judgeWrite('bomitemvalueList-barCode')"
|
||||
@change="changeData('bomitemvalue-barCode',i)" input-align='right' clearable
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="u-p-l-20 u-p-r-20 form-item-box">
|
||||
<u-form-item v-if="judgeShow('bomitemvalueList-proportionNum')"
|
||||
:required="requiredList['bomitemvalueList-proportionNum']" label="比例数量">
|
||||
<u-input v-model="dataForm.bomItemValueList[i].proportionNum"
|
||||
:disabled="judgeWrite('bomitemvalueList')||judgeWrite('bomitemvalueList-proportionNum')"
|
||||
@change="changeData('bomitemvalue-proportionNum',i)" input-align='right' clearable
|
||||
placeholder="请输入" :style='{"width":"100%"}'>
|
||||
</u-input>
|
||||
</u-form-item>
|
||||
</view>
|
||||
</view>
|
||||
<view class="jnpf-table-addBtn" @click="addbomitemvalueList" v-if="!judgeWrite('bomitemvalueList')">
|
||||
<u-icon name="plus" color="#2979ff"></u-icon>
|
||||
<span>{{dataForm.bomItemValueList.length==0?"添加":"添加"}}</span>
|
||||
</view>
|
||||
</view>
|
||||
</u-form>
|
||||
<u-modal v-model="show" :content="content" width='70%' border-radius="16"
|
||||
:content-style="{fontSize: '28rpx',padding: '20rpx',lineHeight: '44rpx',textAlign: 'left'}"
|
||||
:titleStyle="{padding: '20rpx'}" :confirm-style="{height: '80rpx',lineHeight: '80rpx'}" :title="title"
|
||||
confirm-text="确定">
|
||||
</u-modal>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getDictionaryDataSelector,
|
||||
getDataInterfaceRes,
|
||||
getDefaultCurrentValueUserId,
|
||||
getDefaultCurrentValueDepartmentId
|
||||
} from '@/api/common'
|
||||
import comMixin from '../../../workFlow/workFlowForm/mixin'
|
||||
import {
|
||||
getDateDay,
|
||||
getLaterData,
|
||||
getBeforeData,
|
||||
getBeforeTime,
|
||||
getLaterTime
|
||||
} from '@/components/index.js'
|
||||
import request from '@/utils/request'
|
||||
export default {
|
||||
mixins: [comMixin],
|
||||
data() {
|
||||
return {
|
||||
idList: [],
|
||||
index: 0,
|
||||
actionList: [],
|
||||
actionListLength: false,
|
||||
showAction: false,
|
||||
btnLoading: false,
|
||||
loading: false,
|
||||
text: '提示:测试文本',
|
||||
tableKey: '',
|
||||
dataForm: {
|
||||
id: "",
|
||||
bomCode: '',
|
||||
bomName: '',
|
||||
bomNm: '',
|
||||
bomStatus: "1",
|
||||
bomItemList: [],
|
||||
bomItemValueList: [],
|
||||
},
|
||||
rules: {
|
||||
bomName: [{
|
||||
required: true,
|
||||
message: 'BOM名称请输入',
|
||||
}, ],
|
||||
bomNm: [{
|
||||
required: true,
|
||||
message: 'BOM简称请输入',
|
||||
}, ],
|
||||
},
|
||||
bomStatusOptions: [{
|
||||
"fullName": "启用",
|
||||
"id": "1"
|
||||
}, {
|
||||
"fullName": "禁用",
|
||||
"id": "2"
|
||||
}],
|
||||
bomStatusProps: {
|
||||
"label": "fullName",
|
||||
"value": "id",
|
||||
"multiple": false,
|
||||
"children": ""
|
||||
},
|
||||
bomitemproductIdColumnOptions: [{
|
||||
"label": "商品编码",
|
||||
"value": "code"
|
||||
},
|
||||
{
|
||||
"label": "商品名称",
|
||||
"value": "name"
|
||||
},
|
||||
{
|
||||
"label": "规格",
|
||||
"value": "spec"
|
||||
},
|
||||
],
|
||||
bomitemvalueproductIdColumnOptions: [{
|
||||
"label": "商品编码",
|
||||
"value": "code"
|
||||
},
|
||||
{
|
||||
"label": "商品名称",
|
||||
"value": "name"
|
||||
},
|
||||
{
|
||||
"label": "规格",
|
||||
"value": "spec"
|
||||
},
|
||||
],
|
||||
labelwidth: 100 * 1.5,
|
||||
menuId: '',
|
||||
jurisdictionType: '',
|
||||
ruleList: {
|
||||
bomItemList: {},
|
||||
bomItemValueList: {
|
||||
'proportionNum': '比例数量不能为空',
|
||||
},
|
||||
},
|
||||
interfaceRes: {
|
||||
bomCode: [],
|
||||
bomName: [],
|
||||
bomNm: [],
|
||||
bomStatus: [],
|
||||
bomitemproductId: [],
|
||||
bomitemspec: [],
|
||||
bomiteminventoryTypes: [],
|
||||
bomiteminventoryUnitIds: [],
|
||||
bomitemsalesMainUnitIds: [],
|
||||
bomitemvalueproductId: [],
|
||||
bomitemvalueinventoryTypes: [],
|
||||
bomitemvaluespec: [],
|
||||
bomitemvalueinventoryUnitIds: [],
|
||||
bomitemvaluebarCode: [],
|
||||
bomitemvalueproportionNum: [],
|
||||
},
|
||||
regList: {
|
||||
bomItemList: {
|
||||
productId: [],
|
||||
spec: [],
|
||||
inventoryTypes: [],
|
||||
inventoryUnitIds: [],
|
||||
salesMainUnitIds: [],
|
||||
},
|
||||
bomItemValueList: {
|
||||
productId: [],
|
||||
inventoryTypes: [],
|
||||
spec: [],
|
||||
inventoryUnitIds: [],
|
||||
barCode: [],
|
||||
proportionNum: [],
|
||||
},
|
||||
},
|
||||
ableAll: {},
|
||||
childIndex: -1,
|
||||
dataValue: {},
|
||||
isEdit: false,
|
||||
userInfo: {},
|
||||
formatType: {
|
||||
"yyyy": "yyyy",
|
||||
"yyyy-MM": "yyyy-mm",
|
||||
"yyyy-MM-dd": "yyyy-mm-dd",
|
||||
"yyyy-MM-dd HH:mm": "yyyy-mm-dd hh:MM",
|
||||
"yyyy-MM-dd HH:mm:ss": "yyyy-mm-dd hh:MM:ss",
|
||||
"HH:mm:ss": "hh:MM:ss",
|
||||
"HH:mm": "hh:MM"
|
||||
},
|
||||
content: '',
|
||||
title: '',
|
||||
show: false,
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
uni.$on('linkPageConfirm', (subVal) => {
|
||||
if (this.tableKey) {
|
||||
for (let i = 0; i < subVal.length; i++) {
|
||||
let t = subVal[i]
|
||||
if (this['get' + this.tableKey]) {
|
||||
this['get' + this.tableKey](t)
|
||||
}
|
||||
}
|
||||
this.childIndex = -1
|
||||
this.collapse()
|
||||
}
|
||||
})
|
||||
this.jurisdictionType = option.jurisdictionType
|
||||
this.menuId = option.menuId
|
||||
this.userInfo = uni.getStorageSync('userInfo') || {}
|
||||
this.dataForm.id = option.id || 0
|
||||
let _title = ""
|
||||
if (option.jurisdictionType == 'btn_edit') {
|
||||
_title = "编辑"
|
||||
}
|
||||
if (option.jurisdictionType == 'btn_detail') {
|
||||
_title = "详情"
|
||||
}
|
||||
if (option.jurisdictionType == 'btn_add') {
|
||||
_title = "新增"
|
||||
}
|
||||
if (_title) {
|
||||
uni.setNavigationBarTitle({
|
||||
title: _title
|
||||
})
|
||||
}
|
||||
this.selfInit()
|
||||
this.initDefaultData()
|
||||
this.dataAll()
|
||||
this.initData()
|
||||
this.dataValue = JSON.parse(JSON.stringify(this.dataForm))
|
||||
this.idList = option.idList ? option.idList.split(",") : []
|
||||
for (let i = 0; i < this.idList.length; i++) {
|
||||
if (this.idList[i] == option.id) {
|
||||
this.index = i;
|
||||
}
|
||||
}
|
||||
if (!option.id) {
|
||||
this.actionList.push({
|
||||
text: '确定并新增',
|
||||
id: 'save_add'
|
||||
})
|
||||
} else {
|
||||
let upper = {
|
||||
text: '上一条',
|
||||
id: 'upper',
|
||||
disabled: this.index == 0 ? true : false
|
||||
}
|
||||
this.actionList.push(upper)
|
||||
let lower = {
|
||||
text: '下一条',
|
||||
id: 'lower',
|
||||
disabled: this.index == this.idList.length - 1 ? true : false
|
||||
}
|
||||
this.actionList.push(lower)
|
||||
this.actionList.push({
|
||||
text: '确定并继续',
|
||||
id: 'save_proceed'
|
||||
})
|
||||
this.collapse()
|
||||
}
|
||||
},
|
||||
onReady() {
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
this.$refs.dataForm.setRules(this.rules);
|
||||
}, 100)
|
||||
})
|
||||
},
|
||||
watch: {
|
||||
dataForm: {
|
||||
handler(val, oldVal) {
|
||||
this.bomitem()
|
||||
this.bomitemvalue()
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleAction(index) {
|
||||
if (this.actionList[index].id === 'save_add' || this.actionList[index].id === 'save_proceed') {
|
||||
this.submitForm(1)
|
||||
} else {
|
||||
this.calculation(this.actionList[index].id, index)
|
||||
}
|
||||
},
|
||||
calculation(type, index) {
|
||||
if (type === 'upper') {
|
||||
this.index--
|
||||
this.actionList[index + 1].disabled = false
|
||||
if (this.index == 0) this.actionList[index].disabled = true
|
||||
} else {
|
||||
this.index++
|
||||
this.actionList[index - 1].disabled = false
|
||||
if (this.index == this.idList.length - 1) this.actionList[index].disabled = true
|
||||
}
|
||||
this.dataForm.id = this.idList[this.index]
|
||||
this.initData()
|
||||
},
|
||||
changeData(model, index) {
|
||||
this.isEdit = false
|
||||
this.childIndex = index
|
||||
let modelAll = model.split("-");
|
||||
let faceMode = "";
|
||||
for (let i = 0; i < modelAll.length; i++) {
|
||||
faceMode += modelAll[i];
|
||||
}
|
||||
for (let key in this.interfaceRes) {
|
||||
if (key != faceMode) {
|
||||
let faceReList = this.interfaceRes[key]
|
||||
for (let i = 0; i < faceReList.length; i++) {
|
||||
if (faceReList[i].relationField == model) {
|
||||
let options = 'get' + key + 'Options';
|
||||
if (this[options]) {
|
||||
this[options]()
|
||||
}
|
||||
this.changeData(key, index)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
changeDataFormData(type, data, model, index, defaultValue, edit) {
|
||||
if (!edit) {
|
||||
if (type == 2) {
|
||||
for (let i = 0; i < this.dataForm[data].length; i++) {
|
||||
if (index == -1) {
|
||||
this.dataForm[data][i][model] = defaultValue
|
||||
} else if (index == i) {
|
||||
this.dataForm[data][i][model] = defaultValue
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.dataForm[data] = defaultValue
|
||||
}
|
||||
}
|
||||
},
|
||||
clickIcon(label, tipLabel) {
|
||||
this.content = tipLabel
|
||||
this.title = label
|
||||
this.show = true
|
||||
},
|
||||
exist() {
|
||||
let title = [];
|
||||
let _ruleList = this.ruleList
|
||||
for (let k in _ruleList) {
|
||||
let childData = this.dataForm[k]
|
||||
childData.forEach((item, index) => {
|
||||
for (let model in _ruleList[k]) {
|
||||
if (item[model] instanceof Array) {
|
||||
if (item[model].length == 0) {
|
||||
title.push(_ruleList[k][model])
|
||||
}
|
||||
} else if (!item[model]) {
|
||||
title.push(_ruleList[k][model])
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
let _regList = this.regList
|
||||
for (let k in _regList) {
|
||||
let childData = this.dataForm[k]
|
||||
for (let n in _regList[k]) {
|
||||
for (let i = 0; i < _regList[k][n].length; i++) {
|
||||
const element = _regList[k][n][i]
|
||||
if (element.pattern) {
|
||||
element.pattern = element.pattern.toString()
|
||||
let start = element.pattern.indexOf('/')
|
||||
let stop = element.pattern.lastIndexOf('/')
|
||||
let str = element.pattern.substring(start + 1, stop)
|
||||
let reg = new RegExp(str)
|
||||
element.pattern = reg
|
||||
}
|
||||
childData.forEach((item, index) => {
|
||||
if (item[n] && !element.pattern.test(item[n])) {
|
||||
title.push(element.message)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
if (title.length > 0) {
|
||||
return title[0]
|
||||
}
|
||||
},
|
||||
resetForm() {
|
||||
uni.navigateBack()
|
||||
},
|
||||
dataAll() {
|
||||
this.collapse()
|
||||
},
|
||||
dateTime(timeRule, timeType, timeTarget, timeValueData, dataValue) {
|
||||
let timeDataValue = null;
|
||||
let timeValue = Number(timeValueData)
|
||||
if (timeRule) {
|
||||
if (timeType == 1) {
|
||||
timeDataValue = timeValueData ? timeValue : null
|
||||
} else if (timeType == 2) {
|
||||
timeDataValue = dataValue
|
||||
} else if (timeType == 3) {
|
||||
timeDataValue = new Date().getTime()
|
||||
} else if (timeType == 4) {
|
||||
let previousDate = '';
|
||||
if (timeTarget == 1 || timeTarget == 2) {
|
||||
previousDate = getDateDay(timeTarget, timeType, timeValue)
|
||||
timeDataValue = new Date(previousDate).getTime()
|
||||
} else if (timeTarget == 3) {
|
||||
previousDate = getBeforeData(timeValue)
|
||||
timeDataValue = new Date(previousDate).getTime()
|
||||
} else {
|
||||
timeDataValue = getBeforeTime(timeTarget, timeValue).getTime()
|
||||
}
|
||||
} else if (timeType == 5) {
|
||||
let previousDate = '';
|
||||
if (timeTarget == 1 || timeTarget == 2) {
|
||||
previousDate = getDateDay(timeTarget, timeType, timeValue)
|
||||
timeDataValue = new Date(previousDate).getTime()
|
||||
} else if (timeTarget == 3) {
|
||||
previousDate = getLaterData(timeValue)
|
||||
timeDataValue = new Date(previousDate).getTime()
|
||||
} else {
|
||||
timeDataValue = getLaterTime(timeTarget, timeValue).getTime()
|
||||
}
|
||||
}
|
||||
}
|
||||
return timeDataValue;
|
||||
},
|
||||
time(timeRule, timeType, timeTarget, timeValue, formatType, dataValue) {
|
||||
let format = formatType == 'HH:mm' ? 'HH:mm:00' : formatType
|
||||
let timeDataValue = null
|
||||
if (timeRule) {
|
||||
if (timeType == 1 && timeValue) {
|
||||
timeDataValue = timeValue || '00:00:00'
|
||||
if (timeDataValue.split(':').length == 3) {
|
||||
timeDataValue = timeDataValue
|
||||
} else {
|
||||
timeDataValue = timeDataValue + ':00'
|
||||
}
|
||||
} else if (timeType == 2) {
|
||||
timeDataValue = dataValue
|
||||
} else if (timeType == 3) {
|
||||
timeDataValue = this.jnpf.toDate(new Date(), format)
|
||||
} else if (timeType == 4) {
|
||||
let previousDate = '';
|
||||
previousDate = getBeforeTime(timeTarget, timeValue)
|
||||
timeDataValue = this.jnpf.toDate(previousDate, format)
|
||||
} else if (timeType == 5) {
|
||||
let previousDate = '';
|
||||
previousDate = getLaterTime(timeTarget, timeValue)
|
||||
timeDataValue = this.jnpf.toDate(previousDate, format)
|
||||
}
|
||||
}
|
||||
return timeDataValue;
|
||||
},
|
||||
bomitem() {
|
||||
let table = this.dataForm.bomItemList
|
||||
let summaryField = []
|
||||
let summaryFieldName = {}
|
||||
let data = {}
|
||||
let thousandsField = []
|
||||
for (let i in summaryField) {
|
||||
let map = {}
|
||||
let val = 0
|
||||
for (let j = 0; j < table.length; j++) {
|
||||
let summary = table[j][summaryField[i]];
|
||||
if (summary) {
|
||||
let data = isNaN(summary) ? 0 : Number(summary)
|
||||
val += data
|
||||
}
|
||||
}
|
||||
map.id = summaryField[i];
|
||||
map.name = summaryFieldName[summaryField[i]];
|
||||
map.val = (thousandsField.includes(summaryField[i])) ? Number(val).toLocaleString('zh', {
|
||||
maximumFractionDigits: '2'
|
||||
}) : val;
|
||||
data[summaryField[i]] = map;
|
||||
}
|
||||
return data;
|
||||
},
|
||||
bomitemvalue() {
|
||||
let table = this.dataForm.bomItemValueList
|
||||
let summaryField = []
|
||||
let summaryFieldName = {}
|
||||
let data = {}
|
||||
let thousandsField = []
|
||||
for (let i in summaryField) {
|
||||
let map = {}
|
||||
let val = 0
|
||||
for (let j = 0; j < table.length; j++) {
|
||||
let summary = table[j][summaryField[i]];
|
||||
if (summary) {
|
||||
let data = isNaN(summary) ? 0 : Number(summary)
|
||||
val += data
|
||||
}
|
||||
}
|
||||
map.id = summaryField[i];
|
||||
map.name = summaryFieldName[summaryField[i]];
|
||||
map.val = (thousandsField.includes(summaryField[i])) ? Number(val).toLocaleString('zh', {
|
||||
maximumFractionDigits: '2'
|
||||
}) : val;
|
||||
data[summaryField[i]] = map;
|
||||
}
|
||||
return data;
|
||||
},
|
||||
initData() {
|
||||
this.$nextTick(function() {
|
||||
if (this.dataForm.id) {
|
||||
this.loading = true
|
||||
request({
|
||||
url: '/api/scm/Bom/' + this.dataForm.id,
|
||||
method: 'get',
|
||||
}).then(res => {
|
||||
this.dataInfo(res.data)
|
||||
this.loading = false
|
||||
})
|
||||
} else {
|
||||
this.initDefaultData()
|
||||
}
|
||||
})
|
||||
},
|
||||
beforeSubmit() {
|
||||
const _data = this.dataList()
|
||||
return _data
|
||||
},
|
||||
initDefaultData() {},
|
||||
selfInit() {
|
||||
this.$store.commit('base/UPDATE_RELATION_DATA', {})
|
||||
this.dataAll()
|
||||
this.initDefaultData()
|
||||
this.collapse()
|
||||
},
|
||||
selfGetInfo(dataForm) {
|
||||
this.dataForm.id = this.dataForm.id
|
||||
this.dataInfo(dataForm)
|
||||
},
|
||||
addbomitemList() {
|
||||
let value = {}
|
||||
this.tableKey = 'bomItemList';
|
||||
this.getbomitemList(value)
|
||||
this.childIndex = -1
|
||||
this.collapse()
|
||||
},
|
||||
delbomitemList(index) {
|
||||
var that = this
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '确认删除该条信息吗?',
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
that.dataForm.bomItemList.splice(index, 1);
|
||||
that.collapse()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
getbomitemList(value) {
|
||||
let item = {
|
||||
productId: "",
|
||||
spec: '',
|
||||
inventoryTypes: '',
|
||||
inventoryUnitIds: '',
|
||||
salesMainUnitIds: '',
|
||||
}
|
||||
let result = {
|
||||
...item,
|
||||
...value
|
||||
}
|
||||
this.dataForm.bomItemList.push(result)
|
||||
this.childIndex = this.dataForm.bomItemList.length - 1
|
||||
this.isEdit = true
|
||||
this.isEdit = false
|
||||
},
|
||||
addbomitemvalueList() {
|
||||
let value = {}
|
||||
this.tableKey = 'bomItemValueList';
|
||||
this.getbomitemvalueList(value)
|
||||
this.childIndex = -1
|
||||
this.collapse()
|
||||
},
|
||||
delbomitemvalueList(index) {
|
||||
var that = this
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '确认删除该条信息吗?',
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
that.dataForm.bomItemValueList.splice(index, 1);
|
||||
that.collapse()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
getbomitemvalueList(value) {
|
||||
let item = {
|
||||
productId: "",
|
||||
inventoryTypes: '',
|
||||
spec: '',
|
||||
inventoryUnitIds: '',
|
||||
barCode: '',
|
||||
proportionNum: '',
|
||||
}
|
||||
let result = {
|
||||
...item,
|
||||
...value
|
||||
}
|
||||
this.dataForm.bomItemValueList.push(result)
|
||||
this.childIndex = this.dataForm.bomItemValueList.length - 1
|
||||
this.isEdit = true
|
||||
this.isEdit = false
|
||||
},
|
||||
dataList() {
|
||||
var _data = this.dataForm;
|
||||
return _data;
|
||||
},
|
||||
dataInfo(dataAll) {
|
||||
let _dataAll = dataAll
|
||||
this.dataForm = _dataAll
|
||||
this.isEdit = true
|
||||
this.dataAll()
|
||||
for (let i = 0; i < _dataAll.bomItemList.length; i++) {
|
||||
this.childIndex = i
|
||||
}
|
||||
for (let i = 0; i < _dataAll.bomItemValueList.length; i++) {
|
||||
this.childIndex = i
|
||||
}
|
||||
this.childIndex = -1
|
||||
this.collapse()
|
||||
},
|
||||
collapse() {
|
||||
setTimeout(() => {}, 1000);
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
page {
|
||||
background-color: #f0f2f6;
|
||||
}
|
||||
</style>
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue