Browse Source

Merge branch 'master_hella' of http://dev.ccwin-in.com:3000/sfms3.0/sfms3.0-ui into master_hella

master_hella_20240701
zhaoxuebing 7 months ago
parent
commit
027eedb8d2
  1. 28
      src/components/Verifition/src/Verify/VerifyPoints.vue
  2. 35
      src/components/Verifition/src/Verify/VerifySlide.vue
  3. 33
      src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue
  4. 8
      src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js
  5. 25
      src/components/iFrame/src/IFrame.vue
  6. 13
      src/layout/components/Logo/src/Logo.vue
  7. 5
      src/layout/components/Message/src/Message.vue
  8. 13
      src/layout/components/TabMenu/src/TabMenu.vue
  9. 3
      src/utils/dict.ts
  10. 14
      src/views/bpm/model/editor/index.vue
  11. 13
      src/views/login/components/MobileForm.vue
  12. 97
      src/views/mes/pattern/pattern.data.ts
  13. 16
      src/views/qms/basicDataManage/inspectionPlan/addForm.vue
  14. 116
      src/views/qms/basicDataManage/inspectionTemplate/addForm.vue
  15. 3
      src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/demandforecastingMain.data.ts
  16. 5
      src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts
  17. 3
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts

28
src/components/Verifition/src/Verify/VerifyPoints.vue

@ -148,6 +148,8 @@ onMounted(() => {
}
})
const canvas = ref(null)
const timer1 = ref<NodeJS.Timeout | number>(0)
const timer2 = ref<NodeJS.Timeout | number>(0)
const canvasClick = (e) => {
checkPosArr.push(getMousePos(canvas, e))
if (num.value == checkNum.value) {
@ -157,7 +159,7 @@ const canvasClick = (e) => {
checkPosArr.length = 0
checkPosArr.push(...arr)
//
setTimeout(() => {
timer1.value = setTimeout(() => {
// var flag = this.comparePos(this.fontPos, this.checkPosArr);
//
var captchaVerification = secretKey.value
@ -177,9 +179,13 @@ const canvasClick = (e) => {
text.value = t('captcha.success')
bindingClick.value = false
if (mode.value == 'pop') {
setTimeout(() => {
timer2.value = setTimeout(() => {
proxy.$parent.clickShow = false
refresh()
if(timer2.value){
clearTimeout(timer2.value)
timer2.value = 0
}
}, 1500)
}
proxy.$parent.$emit('success', { captchaVerification })
@ -188,17 +194,33 @@ const canvasClick = (e) => {
barAreaColor.value = '#d9534f'
barAreaBorderColor.value = '#d9534f'
text.value = t('captcha.fail')
setTimeout(() => {
timer2.value = setTimeout(() => {
refresh()
if(timer2.value){
clearTimeout(timer2.value)
timer2.value = 0
}
}, 700)
}
})
if(timer1.value){
clearTimeout(timer1.value)
timer1.value = 0
}
}, 400)
}
if (num.value < checkNum.value) {
num.value = createPoint(getMousePos(canvas, e))
}
}
onBeforeUnmount(() => {
if(timer1.value){
clearTimeout(timer1.value)
}
if(timer2.value){
clearTimeout(timer2.value)
}
})
//
const getMousePos = function (obj, e) {
var x = e.offsetX

35
src/components/Verifition/src/Verify/VerifySlide.vue

@ -295,9 +295,14 @@ const end = () => {
showRefresh.value = false
isEnd.value = true
if (mode.value == 'pop') {
setTimeout(() => {
let timer
timer = setTimeout(() => {
proxy.$parent.clickShow = false
refresh()
if(timer){
clearTimeout(timer)
timer = null
}
}, 1500)
}
passFlag.value = true
@ -309,10 +314,15 @@ const end = () => {
secretKey.value
)
: backToken.value + '---' + JSON.stringify({ x: moveLeftDistance, y: 5.0 })
setTimeout(() => {
let timer
timer = setTimeout(() => {
tipWords.value = ''
proxy.$parent.closeBox()
proxy.$parent.$emit('success', { captchaVerification })
if(timer){
clearTimeout(timer)
timer = null
}
}, 1000)
} else {
moveBlockBackgroundColor.value = '#d9534f'
@ -320,13 +330,23 @@ const end = () => {
iconColor.value = '#fff'
iconClass.value = 'icon-close'
passFlag.value = false
setTimeout(function () {
let timer
timer = setTimeout(()=>{
refresh()
if(timer){
clearTimeout(timer)
timer = null
}
}, 1000)
proxy.$parent.$emit('error', proxy)
tipWords.value = t('captcha.fail')
setTimeout(() => {
let timer1
timer1 = setTimeout(() => {
tipWords.value = ''
if(timer1){
clearTimeout(timer1)
timer1 = null
}
}, 1000)
}
})
@ -351,10 +371,15 @@ const refresh = async () => {
isEnd.value = false
await getPictrue()
setTimeout(() => {
let timer
timer = setTimeout(() => {
transitionWidth.value = ''
transitionLeft.value = ''
text.value = explain.value
if(timer){
clearTimeout(timer)
timer = null
}
}, 300)
}

33
src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue

@ -76,6 +76,9 @@ const resetBaseInfo = () => {
// elementBaseInfo.value = JSON.parse(JSON.stringify(bpmnElement.value.businessObject))
console.log(elementBaseInfo.value, 'elementBaseInfo22222222222')
}
const timer1 = ref<NodeJS.Timeout | number>()
const timer2 = ref<NodeJS.Timeout | number>()
const timer3 = ref<NodeJS.Timeout | number>()
const handleKeyUpdate = (value) => {
// value XML NCName
if (!value) {
@ -90,8 +93,12 @@ const handleKeyUpdate = (value) => {
// BPMN XML key id
elementBaseInfo.value['id'] = value
setTimeout(() => {
timer1.value = setTimeout(() => {
updateBaseInfo('id')
if(timer1.value){
clearTimeout(timer1.value)
timer1.value = 0
}
}, 100)
}
const handleNameUpdate = (value) => {
@ -101,8 +108,12 @@ const handleNameUpdate = (value) => {
}
elementBaseInfo.value['name'] = value
setTimeout(() => {
timer2.value = setTimeout(() => {
updateBaseInfo('name')
if(timer2.value){
clearTimeout(timer2.value)
timer2.value = 0
}
}, 100)
}
// const handleDescriptionUpdate=(value)=> {
@ -140,10 +151,14 @@ const updateBaseInfo = (key) => {
}
onMounted(() => {
// bpmn 1 key name
setTimeout(() => {
timer3.value = setTimeout(() => {
console.log(props.model, 'props.model')
handleKeyUpdate(props.model.key)
handleNameUpdate(props.model.name)
if(timer3.value){
clearTimeout(timer3.value)
timer3.value = 0
}
console.log(props, 'propsssssssssssssssssssss')
}, 1000)
})
@ -180,5 +195,17 @@ watch(
// }
onBeforeUnmount(() => {
bpmnElement.value = null
if(timer1.value){
clearTimeout(timer1.value)
timer1.value = 0
}
if(timer2.value){
clearTimeout(timer2.value)
timer2.value = 0
}
if(timer3.value){
clearTimeout(timer3.value)
timer3.value = 0
}
})
</script>

8
src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js

@ -22,9 +22,13 @@ export default {
methodName: binding.expression,
bindingFn: binding.value
}
setTimeout(() => {
let timer
timer = setTimeout(() => {
document.addEventListener('touchstart', documentHandler) // 为document绑定事件
if(timer){
clearTimeout(timer)
timer = null
}
})
},
update(el, binding) {

25
src/components/iFrame/src/IFrame.vue

@ -14,6 +14,8 @@ const init = () => {
height.value = document.documentElement.clientHeight - 94.5 + 'px'
loading.value = false
}
const timer1 = ref<NodeJS.Timeout | number>()
const timer2 = ref<NodeJS.Timeout | number>()
console.log(props.src);
function populateIframe(iframe, headers) {
@ -37,14 +39,33 @@ function populateIframe(iframe, headers) {
onMounted(() => {
setTimeout(() => {
timer1.value = setTimeout(() => {
var iframe = document.querySelector("#iframe");
populateIframe(iframe, [["Authorization", 'Bearer ' + getAccessToken()], ["tenant-id", getTenantId()]]);
if(timer1.value){
clearTimeout(timer1.value)
timer1.value = 0
}
}, 300);
setTimeout(() => {
timer2.value = setTimeout(() => {
init()
if(timer2.value){
clearTimeout(timer2.value)
timer2.value = 0
}
}, 300)
})
onBeforeUnmount(() => {
if(timer1.value){
clearTimeout(timer1.value)
timer1.value = 0
}
if(timer2.value){
clearTimeout(timer2.value)
timer2.value = 0
}
})
</script>
<template>
<div v-loading="loading" :style="'height:' + height">

13
src/layout/components/Logo/src/Logo.vue

@ -18,6 +18,7 @@ const title = computed(() => appStore.getTitle)
const layout = computed(() => appStore.getLayout)
const collapse = computed(() => appStore.getCollapse)
const timer = ref<NodeJS.Timeout | number>()
onMounted(() => {
if (unref(collapse)) show.value = false
@ -31,14 +32,24 @@ watch(
return
}
if (!collapse) {
setTimeout(() => {
timer.value = setTimeout(() => {
show.value = !collapse
if(timer.value){
clearTimeout(timer.value)
timer.value = 0
}
}, 400)
} else {
show.value = !collapse
}
}
)
onBeforeUnmount(() => {
if(timer.value){
clearTimeout(timer.value)
timer.value = 0
}
})
watch(
() => layout.value,

5
src/layout/components/Message/src/Message.vue

@ -38,6 +38,10 @@ onMounted(() => {
interval.value = setInterval(
() => {
getUnreadCount()
if(interval.value){
clearInterval(interval.value)
interval.value = 0
}
},
1000 * 60 * 2
)
@ -45,6 +49,7 @@ onMounted(() => {
onBeforeUnmount(() => {
if(interval.value){
clearInterval(interval.value)
interval.value = 0
}
})
</script>

13
src/layout/components/TabMenu/src/TabMenu.vue

@ -37,6 +37,7 @@ export default defineComponent({
const setCollapse = () => {
appStore.setCollapse(!unref(collapse))
}
const timer = ref<NodeJS.Timeout | number>()
onMounted(() => {
if (unref(fixedMenu)) {
@ -77,14 +78,24 @@ export default defineComponent({
() => collapse.value,
(collapse: boolean) => {
if (!collapse) {
setTimeout(() => {
timer.value = setTimeout(() => {
showTitle.value = !collapse
if(timer.value){
clearTimeout(timer.value)
timer.value = 0
}
}, 200)
} else {
showTitle.value = !collapse
}
}
)
onBeforeUnmount(() => {
if(timer.value){
clearTimeout(timer.value)
timer.value = 0
}
})
//
const showMenu = ref(unref(fixedMenu) ? true : false)

3
src/utils/dict.ts

@ -200,6 +200,7 @@ export enum DICT_TYPE {
OWNER_TYPE = 'owner_type', // 货主类型
CARRIER_TYPE = 'carrier_type', // 承运商类型
INSPECT_TYPE = 'inspect_type', // 检验类型
INSPECTION_TYPE = 'inspection_type', // 质量管理检验类型
NEXT_ACTION = 'next_action', // 下一步检验动作
SAMPLE_METHOD = 'sample_method', // 抽检方式
WAREHOUSE_TYPE = 'warehouse_type', // 仓库类型
@ -301,8 +302,6 @@ export enum DICT_TYPE {
DICTIONARY_CLASS = "dictionary_class", // 字典分类
USAGE_DECISION = "usage_decision", // 使用决策
INSPECTION_BATCH_SOURCE = "inspection_batch_source", // 检验批来源
INSPECTION_TYPE = "inspection_type", // 检验类型
// ========== 业务 - mes -gaojs ==========
QUALIFY_STATUS = 'qualify_status',//质检状态
QUALIFY_ITEM_DATA_TYPE='qualify_item_data_type',//质检项目数据类型

14
src/views/bpm/model/editor/index.vue

@ -49,14 +49,26 @@ const controlForm = ref({
additionalModel: [CustomContentPadProvider, CustomPaletteProvider]
})
const model = ref<ModelApi.ModelVO>() //
const timer = ref<NodeJS.Timeout | number>()
/** 初始化 modeler */
const initModeler = (item) => {
setTimeout(() => {
timer.value = setTimeout(() => {
modeler.value = item
if(timer.value){
clearTimeout(timer.value)
timer.value = 0
}
}, 10)
}
onBeforeUnmount(() => {
if(timer.value){
clearTimeout(timer.value)
timer.value = 0
}
})
/** 添加/修改模型 */
const save = async (bpmnXml) => {
const data = {

13
src/views/login/components/MobileForm.vue

@ -149,6 +149,7 @@ const smsVO = reactive({
})
const mobileCodeTimer = ref(0)
const msgTimer = ref<NodeJS.Timeout | number>()
const timer = ref<NodeJS.Timeout | number>()
const redirect = ref<string>('')
const getSmsCode = async () => {
await getTenantId()
@ -161,6 +162,7 @@ const getSmsCode = async () => {
mobileCodeTimer.value = mobileCodeTimer.value - 1
if (mobileCodeTimer.value <= 0) {
clearInterval(msgTimer.value)
msgTimer.value = 0
}
}, 1000)
})
@ -168,6 +170,11 @@ const getSmsCode = async () => {
onBeforeUnmount(() => {
if(msgTimer.value){
clearInterval(msgTimer.value)
msgTimer.value = 0
}
if(timer.value){
clearTimeout(timer.value)
timer.value = 0
}
})
watch(
@ -210,9 +217,13 @@ const signIn = async () => {
.catch(() => {})
.finally(() => {
loginLoading.value = false
setTimeout(() => {
timer.value = setTimeout(() => {
const loadingInstance = ElLoading.service()
loadingInstance.close()
if(timer.value){
clearTimeout(timer.value)
timer.value = 0
}
}, 400)
})
}

97
src/views/mes/pattern/pattern.data.ts

@ -1,9 +1,14 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
import {PatternType} from "@/views/mes/patternType/patternType.data";
import * as PatternTypeApi from "@/api/mes/patternType";
import {validateInteger} from '@/utils/validator'
// 表单校验
export const PatternRules = reactive({
concurrencyStamp: [required],
code: [required],
name: [required],
partternName: [required],
})
export const Pattern = useCrudSchemas(reactive<CrudSchema[]>([
@ -112,6 +117,23 @@ export const Pattern = useCrudSchemas(reactive<CrudSchema[]>([
field: 'partternName',
sort: 'custom',
isSearch: true,
form: {
componentProps: {
isSearchList: true, // 开启查询弹窗
searchTitle: '模具类型', // 查询弹窗标题
searchAllSchemas: PatternType.allSchemas, // 查询弹窗所需类
searchField: 'name', // 查询弹窗赋值字段
searchPage: PatternTypeApi.getPatternTypePage, // 查询弹窗所需分页方法
multiple:true,
searchCondition: [{
key: 'status',
value: '1',
action: '==',
isSearch: true,
isMainValue: false
}]
}
}
},
{
label: '产品编码',
@ -124,12 +146,47 @@ export const Pattern = useCrudSchemas(reactive<CrudSchema[]>([
field: 'dateUseStart',
sort: 'custom',
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
formatter: dateFormatter,
isForm: true,
form: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'datetime',
valueFormat: 'x'
}
},
},
{
label: '停用时间',
field: 'dateUseStop',
sort: 'custom',
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
formatter: dateFormatter,
isForm: true,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
}
},
},
{
label: '模具来源',
@ -148,18 +205,56 @@ export const Pattern = useCrudSchemas(reactive<CrudSchema[]>([
field: 'initCout',
sort: 'custom',
isSearch: true,
form: {
component: 'InputNumber',
componentProps: {
min: 1
}
},
},
{
label: '有效期开始时间',
field: 'effectStart',
sort: 'custom',
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
formatter: dateFormatter,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
}
},
},
{
label: '有效期结束时间',
field: 'effectEnd',
sort: 'custom',
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
formatter: dateFormatter,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
}
},
},
{
label: '所属单位编码',

16
src/views/qms/basicDataManage/inspectionPlan/addForm.vue

@ -47,9 +47,9 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="检验类型编码" prop="testTypeCode">
<div style="display: flex; width: 100%">
<el-input v-model="data.testTypeName" disabled placeholder="请选择检验类型编码" />
<el-form-item label="检验类型" prop="testTypeCode">
<!-- <div style="display: flex; width: 100%">
<el-input v-model="data.testTypeName" disabled placeholder="请选择检验类型" />
<el-button
type="info"
plain
@ -69,7 +69,15 @@
"
><Icon icon="ep:search" />
</el-button>
</div>
</div> -->
<el-select v-model="data.testTypeCode" placeholder="请选择检验类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.INSPECTION_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">

116
src/views/qms/basicDataManage/inspectionTemplate/addForm.vue

@ -25,6 +25,45 @@
<el-input v-model="data.version" placeholder="请填写版本" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="动态修改规则编码"
prop="dynamicUpdateCode"
>
<div style="display: flex; width: 100%">
<el-input
v-model="data.dynamicUpdateName"
disabled
placeholder="请选择动态修改规则编码"
/>
<el-button
type="info"
plain
style="width: 40px"
@click="
opensearchTable(
'dynamicUpdateCode',
null,
'动态修改规则编码',
DynamicRule.allSchemas,
DynamicRuleApi.getDynamicRulePage,
[
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
false,
null,
data
)
"
><Icon icon="ep:search"
/></el-button>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-tabs
@ -85,6 +124,7 @@
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="small-title">检验特性</div>
@ -146,11 +186,11 @@
<el-col :span="12">
<el-form-item
label="采样过程编码"
prop="inspectionCharacteristicsBaseVO.inspectionMethod"
prop="inspectionCharacteristicsBaseVO.samplingProcessCode"
>
<div style="display: flex; width: 100%">
<el-input
v-model="item.inspectionCharacteristicsBaseVO.inspectionName"
v-model="item.inspectionCharacteristicsBaseVO.samplingProcessName"
disabled
placeholder="请选择采样过程编码"
/>
@ -160,7 +200,7 @@
style="width: 40px"
@click="
opensearchTable(
'inspectionMethod',
'samplingProcessCode',
null,
'采样过程编码',
SamplingProcess.allSchemas,
@ -182,45 +222,7 @@
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="动态修改规则编码"
prop="inspectionCharacteristicsBaseVO.dynamicUpdateCode"
>
<div style="display: flex; width: 100%">
<el-input
v-model="item.inspectionCharacteristicsBaseVO.dynamicUpdateName"
disabled
placeholder="请选择动态修改规则编码"
/>
<el-button
type="info"
plain
style="width: 40px"
@click="
opensearchTable(
'dynamicUpdateCode',
null,
'动态修改规则编码',
DynamicRule.allSchemas,
DynamicRuleApi.getDynamicRulePage,
[
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
false,
'features',
item
)
"
><Icon icon="ep:search"
/></el-button>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="是否允许修改特征值"
@ -353,7 +355,7 @@
>
<div style="display: flex; width: 100%">
<el-input
v-model="item.inspectionCharacteristicsBaseVO.quantifyQuantifyCode"
v-model="item.inspectionCharacteristicsBaseVO.quantifyQuantifyName"
disabled
placeholder="请选择选择集编码"
/>
@ -376,7 +378,7 @@
}
],
false,
null,
'features',
item
)
"
@ -474,6 +476,7 @@ const data = ref({
code: '',
description: '',
version: '',
dynamicUpdateCode:'',
process: []
})
@ -499,12 +502,12 @@ const rules = ref({
'inspectionCharacteristicsBaseVO.inspectionMethodCode': [
{ required: true, message: '请选择检验方法编码', trigger: 'blur' }
],
'inspectionCharacteristicsBaseVO.dynamicUpdateCode': [
{ required: true, message: '请选择采样过程编码', trigger: ['blur', 'change'] }
],
'inspectionCharacteristicsBaseVO.inspectionMethod': [
dynamicUpdateCode: [
{ required: true, message: '请选择动态修改规则编码', trigger: ['blur', 'change'] }
],
'inspectionCharacteristicsBaseVO.samplingProcessCode': [
{ required: true, message: '请选择采样过程', trigger: ['blur', 'change'] }
],
'inspectionCharacteristicsBaseVO.resultEntryMethod': [
{ required: true, message: '请选择结果录入方式', trigger: ['blur', 'change'] }
],
@ -617,13 +620,13 @@ const buttonBaseClick1 = (val) => {
description: nameForm.value.name,
name: newTabName,
inspectionCode: '',
dynamicUpdateCode:'',
sequenceCode: '',
inspectionCharCode: '',
inspectionCharacteristicsBaseVO: {
describe: '',
inspectionMethodCode: '',
dynamicUpdateCode: '',
inspectionMethod: '',
samplingProcessCode: '',
isCanUpdate: '',
isDestructionInspection: '',
resultEntryMethod: '',
@ -821,10 +824,15 @@ const searchTableSuccess = (formField, searchField, val, type, row) => {
row.inspectionCharacteristicsBaseVO[formField] = val[0].code
if(formField == 'inspectionMethodCode'){
row.inspectionCharacteristicsBaseVO.inspectionMethodName = val[0].description
}else if(formField == 'dynamicUpdateCode'){
row.inspectionCharacteristicsBaseVO.dynamicUpdateName = val[0].description
}else if(formField == 'inspectionMethod'){
row.inspectionCharacteristicsBaseVO.inspectionName = val[0].description
}else if(formField == 'samplingProcessCode'){
row.inspectionCharacteristicsBaseVO.samplingProcessName = val[0].description
}else if(formField == 'quantifyQuantifyCode'){
row.inspectionCharacteristicsBaseVO.quantifyQuantifyName = val[0].description
}
}else{
if(formField == 'dynamicUpdateCode'){
data.value[formField] = val[0].code
data.value.dynamicUpdateName = val[0].description
}
}

3
src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/demandforecastingMain.data.ts

@ -430,7 +430,8 @@ export const DemandforecastingDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150
},
tableForm: {
type: 'Select'
type: 'Select',
disabled: true
}
},
{

5
src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts

@ -450,13 +450,10 @@ export const PurchaseDetail = useCrudSchemas(reactive<CrudSchema[]>([
dictClass: 'string',
isSearch: true,
isTable: true,
isTableForm:false,
table: {
width: 150
},
tableForm: {
disabled:true,
type: 'Select'
}
},
{
label: '订单数量',

3
src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts

@ -520,7 +520,8 @@ export const PurchasePlanDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150
},
tableForm: {
type: 'Select'
type: 'Select',
disabled:false,
}
},
{

Loading…
Cancel
Save