Browse Source

Merge remote-tracking branch 'origin/master_hella' into master_hella

hella_online_20240829
gaojs 2 months ago
parent
commit
12cf34fc70
  1. 7
      src/api/wms/purchaseMain/index.ts
  2. 5
      src/views/login/login.vue
  3. 190
      src/views/qms/aql/index.vue
  4. 124
      src/views/qms/counter/index.vue
  5. 211
      src/views/qms/dynamicRule/index.vue
  6. 2
      src/views/qms/inspectionJob/index.vue
  7. 163
      src/views/qms/inspectionMethod/index.vue
  8. 172
      src/views/qms/inspectionQ1/index.vue
  9. 57
      src/views/qms/inspectionQ1/inspectionQ1.data.ts
  10. 195
      src/views/qms/inspectionQ2/index.vue
  11. 58
      src/views/qms/inspectionQ2/inspectionQ2.data.ts
  12. 174
      src/views/qms/inspectionQ3/index.vue
  13. 41
      src/views/qms/inspectionQ3/inspectionQ3.data.ts
  14. 10
      src/views/qms/inspectionRecordFirst/addForm.vue
  15. 4
      src/views/qms/inspectionRecordFirst/detail.vue
  16. 2
      src/views/qms/inspectionRecordFirst/index.vue
  17. 775
      src/views/qms/inspectionRequest/index.vue
  18. 148
      src/views/qms/inspectionScheme/index.vue
  19. 117
      src/views/qms/inspectionStage/index.vue
  20. 132
      src/views/qms/inspectionTemplate/index.vue
  21. 2
      src/views/qms/qualityNotice/index.vue
  22. 155
      src/views/qms/sampleCode/index.vue
  23. 239
      src/views/qms/samplingProcess/index.vue
  24. 134
      src/views/qms/samplingScheme/index.vue
  25. 114
      src/views/qms/selectedProject/index.vue
  26. 231
      src/views/qms/selectedSet/index.vue
  27. 2
      src/views/wms/basicDataManage/documentSetting/businesstype/businesstype.data.ts
  28. 8
      src/views/wms/basicDataManage/documentSetting/businesstype/index.vue
  29. 3
      src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue
  30. 44
      src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/relegateRequestMain.data.ts
  31. 1203
      src/views/wms/deliversettlementManage/customerreturn/customerreturnJobMain/customerreturnJobMain.data.ts
  32. 767
      src/views/wms/deliversettlementManage/customerreturn/customerreturnRecordMain/customerreturnRecordMain.data.ts
  33. 1152
      src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/customerreturnRequestMain.data.ts
  34. 3
      src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/index.vue
  35. 960
      src/views/wms/inventoryjobManage/scrap/scrapJobMain/scrapJobMain.data.ts
  36. 556
      src/views/wms/inventoryjobManage/scrap/scrapRecordMain/scrapRecordMain.data.ts
  37. 762
      src/views/wms/inventoryjobManage/scrap/scrapRequestMain/scrapRequestMain.data.ts
  38. 20
      src/views/wms/issueManage/productionreturn/productionreturnRequestMain/productionreturnRequestMain.data.ts
  39. 6
      src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/index.vue
  40. 1046
      src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/productionreturnRequestMainNo.data.ts
  41. 644
      src/views/wms/issueManage/productionscrap/productionscrapRecordMain/productionscrapRecordMain.data.ts
  42. 916
      src/views/wms/issueManage/productionscrap/productionscrapRequestMain/productionscrapRequestMain.data.ts
  43. 6
      src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRequestMain/index.vue
  44. 72
      src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRequestMain/productreceiptscrapRequestMain.data.ts
  45. 7
      src/views/wms/productionManage/productredress/productredressJobMain/productredressJobMain.data.ts
  46. 3
      src/views/wms/productionManage/productredress/productredressRecordMain/productredressRecordMain.data.ts
  47. 944
      src/views/wms/productionManage/productscrap/productscrapJobMain/productscrapJobMain.data.ts
  48. 681
      src/views/wms/productionManage/productscrap/productscrapRecordMain/productscrapRecordMain.data.ts
  49. 31
      src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue
  50. 1057
      src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts
  51. 1157
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/purchasereturnJobMain.data.ts
  52. 780
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/purchasereturnRecordMain.data.ts
  53. 6
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue
  54. 1207
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts
  55. 3
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue
  56. 108
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts

7
src/api/wms/purchaseMain/index.ts

@ -72,7 +72,12 @@ export const witPurchaseMain = async (id: number) => {
}
// 导出采购订单主 Excel
export const exportPurchaseMain = async (params) => {
return await request.download({ url: `/wms/purchase-main/export-excel`, params })
if (params.isSearch) {
const data = {...params}
return await request.downloadPost({ url: `/wms/purchase-main/export-excel-senior`, data })
} else {
return await request.download({ url: `/wms/purchase-main/export-excel`, params })
}
}
// 下载用户导入模板

5
src/views/login/login.vue

@ -9,7 +9,7 @@
>
<!-- 左上角的 logo + 系统标题 -->
<div class="relative flex items-center ">
<img alt="" class="mr-10px w-144px h-36px" src="@/assets/imgs/logo_white_blue.png" />
<img alt="" class="mr-10px w-36px h-36px" src="@/assets/imgs/logo_white.png" />
<span class="text-20px font-bold">{{ t(`ts.${underlineToHump(appStore.getTitle)}`) }}</span>
</div>
<!-- 左边的背景图 + 欢迎语 -->
@ -33,7 +33,7 @@
class="flex items-center justify-between at-2xl:justify-end at-xl:justify-end"
>
<div class="flex items-center at-2xl:hidden at-xl:hidden">
<img alt="" class="mr-10px w-144px h-36px" src="@/assets/imgs/logo_white_blue.png" />
<img alt="" class="mr-10px w-36px h-36px" src="@/assets/imgs/logo_white.png" />
<span class="text-20px font-bold">{{ t(`ts.${underlineToHump(appStore.getTitle)}`) }}</span>
</div>
<div class="flex items-center justify-end space-x-10px">
@ -94,6 +94,7 @@ $prefix-cls: #{$namespace}-login;
z-index: -1;
width: 100%;
height: 100%;
background-size: cover;
// background-image: url('@/assets/svgs/login-bg.svg');
background-image: url('@/assets/imgs/login-bg.png');
background-position: center;

190
src/views/qms/aql/index.vue

@ -1,22 +1,27 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="Aql.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="Aql.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="Aql.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="Aql.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,13 +32,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<template #code="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -55,12 +63,17 @@
<Detail ref="detailRef" :isBasic="true" :allSchemas="Aql.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/qms/aql/import" :importTemplateData="importTemplateData" @success="importSuccess" />
<ImportForm
ref="importFormRef"
url="/qms/aql/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
/>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { Aql,AqlRules } from './aql.data'
import { Aql, AqlRules } from './aql.data'
import * as AqlApi from '@/api/qms/aql'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
@ -100,12 +113,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:aql:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:aql:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:aql:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:aql:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:aql:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:aql:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -118,21 +131,27 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
@ -142,23 +161,31 @@ const isShowMainButton = (row,val) => {
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi: 'qms:aql:update'}),
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'qms:aql:enable'}),
defaultButtons.mainListDisableBtn({ hide: isShowMainButton(row, ['TRUE']), hasPermi: 'qms:aql:disable' }),
defaultButtons.mainListDeleteBtn({hasPermi:'qms:aql:delete'}), //
defaultButtons.mainListEditBtn({ hasPermi: 'qms:aql:update' }),
defaultButtons.mainListEnableBtn({
hide: isShowMainButton(row, ['FALSE']),
hasPermi: 'qms:aql:enable'
}),
defaultButtons.mainListDisableBtn({
hide: isShowMainButton(row, ['TRUE']),
hasPermi: 'qms:aql:disable'
}),
defaultButtons.mainListDeleteBtn({ hasPermi: 'qms:aql:delete' }) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
} else if (val == 'disable') {
handleDisable(row.id)
}else if (val == 'delete') { //
    handleDelete(row.id)
  }
} else if (val == 'delete') {
//
handleDelete(row.id)
}
}
/** 添加/修改操作 */
@ -168,27 +195,33 @@ const openForm = (type: string, row?: any) => {
}
// form
const formsSuccess = async (formType,data) => {
var isHave =Aql.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间')
return;
const formsSuccess = async (formType, data) => {
try {
var isHave = Aql.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return
}
}
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
basicFormRef.value.formLoading = true
if (formType === 'create') {
await AqlApi.createAql(data)
message.success(t('common.createSuccess'))
} else {
await AqlApi.updateAql(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await AqlApi.createAql(data)
message.success(t('common.createSuccess'))
} else {
await AqlApi.updateAql(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -268,51 +301,50 @@ const searchFormClick = (searchData) => {
const onChange = async (field, value, formRef) => {
// "a"
if (field.startsWith("a") || field.startsWith("r")) {
if (field.startsWith('a') || field.startsWith('r')) {
// "a"
const suffix = field.slice(1);
const suffix = field.slice(1)
// "r"
const correspondingField = field.startsWith("a") ? "r" + suffix : "a" + suffix ;
const correspondingField = field.startsWith('a') ? 'r' + suffix : 'a' + suffix
// "r"
if (value) {
// "r"
Aql.allSchemas.formSchema.forEach(item => {
Aql.allSchemas.formSchema.forEach((item) => {
if (item.field === correspondingField) {
const setV = {};
if(correspondingField.startsWith("r")){
setV[correspondingField] = parseInt(value) + 1;
}else {
setV[correspondingField] = parseInt(value) - 1;
const setV = {}
if (correspondingField.startsWith('r')) {
setV[correspondingField] = parseInt(value) + 1
} else {
setV[correspondingField] = parseInt(value) - 1
}
item.componentProps.disabled = true;
item.componentProps.disabled = true
// 使 Vue nextTick DOM
nextTick(() => {
formRef.value.setValues(setV);
});
formRef.value.setValues(setV)
})
}
});
}else{
Aql.allSchemas.formSchema.forEach(item => {
})
} else {
Aql.allSchemas.formSchema.forEach((item) => {
if (item.field === correspondingField || item.field === field) {
item.componentProps.disabled = false;
const setV = {};
item.componentProps.disabled = false
const setV = {}
setV[correspondingField] = ''
nextTick(() => {
formRef.value.setValues(setV);
});
formRef.value.setValues(setV)
})
}
});
})
}
}
};
}
/** 初始化 **/
onMounted(async () => {
  tableObject.params = {
    available: true
  }
tableObject.params = {
available: true
}
getList()
importTemplateData.templateUrl = await AqlApi.importTemplate()
})
</script>

124
src/views/qms/counter/index.vue

@ -1,22 +1,27 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="Counter.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="Counter.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="Counter.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="Counter.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,13 +32,13 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<template #code="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event, row)" />
</template>
</Table>
</ContentWrap>
@ -54,12 +59,17 @@
<Detail ref="detailRef" :isBasic="true" :allSchemas="Counter.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/qms/counter/import" :importTemplateData="importTemplateData" @success="importSuccess" />
<ImportForm
ref="importFormRef"
url="/qms/counter/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
/>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { Counter,CounterRules } from './counter.data'
import { Counter, CounterRules } from './counter.data'
import * as CounterApi from '@/api/qms/counter'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
// import TableHead from '@/components/TableHead/src/TableHead.vue'
@ -100,11 +110,11 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
// defaultButtons.defaultAddBtn({hasPermi:'qms:counter:create'}), //
// defaultButtons.defaultImportBtn({hasPermi:'qms:counter:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:counter:export'}), //
// defaultButtons.defaultImportBtn({hasPermi:'qms:counter:import'}), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:counter:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -114,35 +124,42 @@ const HeadButttondata = [
// color: ''
// },
]
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
// -
const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'qms:counter:update'}), //
defaultButtons.mainListEditBtn({ hasPermi: 'qms:counter:update' }) //
// defaultButtons.mainListDeleteBtn({hasPermi:'qms:counter:delete'}), //
]
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}
}
@ -162,27 +179,33 @@ const openForm = async (type: string, row?: any) => {
}
// form
const formsSuccess = async (formType,data) => {
var isHave =Counter.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间')
return;
const formsSuccess = async (formType, data) => {
try {
var isHave = Counter.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return
}
}
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
basicFormRef.value.formLoading = true
if (formType === 'create') {
await CounterApi.createCounter(data)
message.success(t('common.createSuccess'))
} else {
await CounterApi.updateCounter(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await CounterApi.createCounter(data)
message.success(t('common.createSuccess'))
} else {
await CounterApi.updateCounter(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -246,11 +269,10 @@ const searchFormClick = (searchData) => {
/** 初始化 **/
onMounted(async () => {
  tableObject.params = {
    available: true
  }
tableObject.params = {
available: true
}
getList()
importTemplateData.templateUrl = await CounterApi.importTemplate()
})
</script>

211
src/views/qms/dynamicRule/index.vue

@ -1,22 +1,27 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="DynamicRule.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="DynamicRule.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="DynamicRule.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="DynamicRule.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,13 +32,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<template #code="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -60,15 +68,15 @@
<!-- 详情 -->
<DetailQmsCode
ref="detailRef"
:isBasic="false"
ref="detailRef"
:isBasic="false"
:allSchemas="DynamicRule.allSchemas"
:detailAllSchemas="InspectionStage.allSchemas"
:detailAllSchemas="InspectionStage.allSchemas"
:detailAllSchemasRules="InspectionStageRules"
:apiCreate="InspectionStageApi.createInspectionStage"
:apiUpdate="InspectionStageApi.updateInspectionStage"
:apiPage="InspectionStageApi.getInspectionStagePage"
:apiDelete="InspectionStageApi.deleteInspectionStage"
:apiDelete="InspectionStageApi.deleteInspectionStage"
:detailValidate="detailValidate"
@searchTableSuccessDetail="searchTableSuccessDetail"
:detailButtonIsShowEdit="checkPermi(['qms:inspection-stage:update'])"
@ -92,15 +100,15 @@
<script setup lang="ts">
import download from '@/utils/download'
import { DynamicRule,DynamicRuleRules } from './dynamicRule.data'
import { InspectionStage,InspectionStageRules } from '../inspectionStage/inspectionStage.data'
import { DynamicRule, DynamicRuleRules } from './dynamicRule.data'
import { InspectionStage, InspectionStageRules } from '../inspectionStage/inspectionStage.data'
import * as DynamicRuleApi from '@/api/qms/dynamicRule'
import * as InspectionStageApi from '@/api/qms/inspectionStage'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import UploadFile from '@/components/UploadFile/src/UploadFile.vue'
import { checkPermi } from '@/utils/permission'
import ImportForm from "../../../components/ImportForm/src/ImportForm.vue";
import ImportForm from '../../../components/ImportForm/src/ImportForm.vue'
// import TableHead from '@/components/TableHead/src/TableHead.vue'
// import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
// import Detail from '@/components/Detail/src/Detail.vue'
@ -141,12 +149,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:dynamic-rule:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:dynamic-rule:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:dynamic-rule:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:dynamic-rule:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:dynamic-rule:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:dynamic-rule:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -159,21 +167,27 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
@ -183,22 +197,30 @@ const isShowMainButton = (row,val) => {
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi: 'qms:dynamic-rule:update'}),
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'qms:dynamic-rule:enable'}),
defaultButtons.mainListDisableBtn({ hide: isShowMainButton(row, ['TRUE']), hasPermi: 'qms:dynamic-rule:disable' }),
defaultButtons.mainListDeleteBtn({hasPermi:'qms:dynamic-rule:delete'}), //
defaultButtons.mainListEditBtn({ hasPermi: 'qms:dynamic-rule:update' }),
defaultButtons.mainListEnableBtn({
hide: isShowMainButton(row, ['FALSE']),
hasPermi: 'qms:dynamic-rule:enable'
}),
defaultButtons.mainListDisableBtn({
hide: isShowMainButton(row, ['TRUE']),
hasPermi: 'qms:dynamic-rule:disable'
}),
defaultButtons.mainListDeleteBtn({ hasPermi: 'qms:dynamic-rule:delete' }) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
editForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}else if (val == 'enable') {
} else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
} else if (val == 'disable') {
handleDisable(row.id)
}
}
@ -212,33 +234,39 @@ const openForm = async (type: string, row?: any) => {
const editForm = async (type: string, row?: any) => {
tableData.value = []
detailMasterId.value = row.id
InspectionStageApi.getInspectionStageNoPage({masterId:row.id}).then(res=>{
InspectionStageApi.getInspectionStageNoPage({ masterId: row.id }).then((res) => {
tableData.value = res
})
basicFormRef.value.open(type, row)
}
// form
const formsSuccess = async (formType,data) => {
var isHave =DynamicRule.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间')
return;
const formsSuccess = async (formType, data) => {
try {
var isHave = DynamicRule.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return
}
}
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
basicFormRef.value.formLoading = true
if (formType === 'create') {
await DynamicRuleApi.createDynamicRule(data)
message.success(t('common.createSuccess'))
} else {
await DynamicRuleApi.updateDynamicRule(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} catch {
basicFormRef.value.formLoading = false
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await DynamicRuleApi.createDynamicRule(data)
message.success(t('common.createSuccess'))
} else {
await DynamicRuleApi.updateDynamicRule(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -331,23 +359,23 @@ const handleDeleteTable = (item, index) => {
tableData.value.splice(index, 1)
}
//
const submitForm = async (formType, data) => {
const flag = validateNotRepetition(tableData.value);
const emptyFlag = validateDetailEmpty(tableData.value);
if(!emptyFlag){
const flag = validateNotRepetition(tableData.value)
const emptyFlag = validateDetailEmpty(tableData.value)
if (!emptyFlag) {
message.alertWarning('明细不能为空')
basicFormRef.value.formLoading = false
return
}
if(!flag){
if (!flag) {
message.alertWarning('动态规则阶段不能重复')
basicFormRef.value.formLoading = false
return
}
data.inspectionStageDOList = tableData.value//
data.inspectionStageDOList = tableData.value //
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await DynamicRuleApi.createDynamicRule(data)
message.success(t('common.createSuccess'))
@ -356,6 +384,7 @@ const submitForm = async (formType, data) => {
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
//
getList()
} finally {
@ -363,9 +392,9 @@ const submitForm = async (formType, data) => {
}
}
const detailValidate = (type,data) => {
let tag = true;
if(!validateIfRepeat(type,data)){
const detailValidate = (type, data) => {
let tag = true
if (!validateIfRepeat(type, data)) {
tag = false
message.alertWarning('动态规则阶段不能重复')
}
@ -374,49 +403,49 @@ const detailValidate = (type,data) => {
const detailOpenForm = (type, row, masterParmas) => {
detailMasterId.value = masterParmas.masterId
InspectionStageApi.getInspectionStageNoPage({masterId:masterParmas.masterId}).then(res=>{
InspectionStageApi.getInspectionStageNoPage({ masterId: masterParmas.masterId }).then((res) => {
detailList.value = res
})
}
const validateIfRepeat = (type,data) => {
let mergedArray: any[] = [];
if(type == 'create'){
mergedArray = [data, ...detailList.value];
}if(type == 'update'){
detailList.value = detailList.value.filter(item => item.id !== data.id);
mergedArray = [data, ...detailList.value];
const validateIfRepeat = (type, data) => {
let mergedArray: any[] = []
if (type == 'create') {
mergedArray = [data, ...detailList.value]
}
if (type == 'update') {
detailList.value = detailList.value.filter((item) => item.id !== data.id)
mergedArray = [data, ...detailList.value]
}
const stageSet = new Set(mergedArray.map(item => item.stage));
return stageSet.size === mergedArray.length;
const stageSet = new Set(mergedArray.map((item) => item.stage))
return stageSet.size === mergedArray.length
}
const validateDetailEmpty = (data) => {
const codes = data.map(item => item.stage);
if(codes.length == 0){
return false;
const codes = data.map((item) => item.stage)
if (codes.length == 0) {
return false
}
return true;
return true
}
const validateNotRepetition = (data) => {
// dictionaryTypeAndCode
const codes = data.map(item => item.stage);
const codes = data.map((item) => item.stage)
// Set dictionaryTypeAndCode
const uniqueCodes = new Set(codes);
const uniqueCodes = new Set(codes)
// Set
if (codes.length > uniqueCodes.size) {
return false; // false
return false // false
}
return true; // true
};
return true // true
}
/** 初始化 **/
onMounted(async () => {
  tableObject.params = {
    available: true
  }
tableObject.params = {
available: true
}
getList()
importTemplateData.templateUrl = await DynamicRuleApi.importTemplate()
})
</script>

2
src/views/qms/inspectionJob/index.vue

@ -389,6 +389,7 @@ const tableData = ref([])
const submitForm = async (formType, data) => {
// return
try {
formRef.value.formLoading = true
if (formType === 'create') {
await InspectionJobMainApi.createInspectionJobMain(data)
message.success(t('common.createSuccess'))
@ -397,6 +398,7 @@ const submitForm = async (formType, data) => {
message.success(t('common.updateSuccess'))
}
formRef.value.dialogVisible = false
formRef.value.formLoading = false
//
getList()
} finally {

163
src/views/qms/inspectionMethod/index.vue

@ -1,22 +1,27 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="InspectionMethod.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="InspectionMethod.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InspectionMethod.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InspectionMethod.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,13 +32,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<template #code="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -42,12 +50,14 @@
<BasicForm
ref="basicFormRef"
@success="formsSuccess"
:sumFormDataByForm ="(formRef,formModel)=>{
const {videoAddress} = formModel
formRef.value.setValues({
installPackageUrl:videoAddress
})
}"
:sumFormDataByForm="
(formRef, formModel) => {
const { videoAddress } = formModel
formRef.value.setValues({
installPackageUrl: videoAddress
})
}
"
:rules="InspectionMethodRules"
:formAllSchemas="InspectionMethod.allSchemas"
:apiUpdate="InspectionMethodApi.updateInspectionMethod"
@ -73,7 +83,7 @@
<script setup lang="ts">
import download from '@/utils/download'
import { InspectionMethod,InspectionMethodRules } from './inspectionMethod.data'
import { InspectionMethod, InspectionMethodRules } from './inspectionMethod.data'
import * as InspectionMethodApi from '@/api/qms/inspectionMethod'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
@ -113,12 +123,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:inspection-method:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:inspection-method:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:inspection-method:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:inspection-method:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:inspection-method:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:inspection-method:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -131,21 +141,27 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
@ -155,22 +171,30 @@ const isShowMainButton = (row,val) => {
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi: 'qms:inspection-method:update'}),
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'qms:inspection-method:enable'}),
defaultButtons.mainListDisableBtn({ hide: isShowMainButton(row, ['TRUE']), hasPermi: 'qms:inspection-method:disable' }),
defaultButtons.mainListDeleteBtn({hasPermi:'qms:inspection-method:delete'}), //
defaultButtons.mainListEditBtn({ hasPermi: 'qms:inspection-method:update' }),
defaultButtons.mainListEnableBtn({
hide: isShowMainButton(row, ['FALSE']),
hasPermi: 'qms:inspection-method:enable'
}),
defaultButtons.mainListDisableBtn({
hide: isShowMainButton(row, ['TRUE']),
hasPermi: 'qms:inspection-method:disable'
}),
defaultButtons.mainListDeleteBtn({ hasPermi: 'qms:inspection-method:delete' }) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}else if (val == 'enable') {
} else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
} else if (val == 'disable') {
handleDisable(row.id)
}
}
@ -178,7 +202,7 @@ const buttonTableClick = async (val, row) => {
/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
if(row && row.videoAddress?.trim()){
if (row && row.videoAddress?.trim()) {
row.filePathList = row.videoAddress.split(',')
}
@ -190,39 +214,47 @@ const openForm = (type: string, row?: any) => {
}
})
}
if(type=='create'){
if (type == 'create') {
const currentTime = new Date().getTime()
const fileId = InspectionMethod.allSchemas.formSchema.find(item=>item.field=='fileId')
const uploadFile = InspectionMethod.allSchemas.formSchema.find(item=>item.field=='videoAddress')
if(fileId){
const fileId = InspectionMethod.allSchemas.formSchema.find((item) => item.field == 'fileId')
const uploadFile = InspectionMethod.allSchemas.formSchema.find(
(item) => item.field == 'videoAddress'
)
if (fileId) {
fileId['value'] = currentTime
}
if(uploadFile){
if (uploadFile) {
uploadFile['componentProps']['upData']['tableId'] = currentTime
uploadFile['componentProps']['modelValue']= []
uploadFile['componentProps']['modelValue'] = []
}
}else if(type=='update'){
const uploadFile = InspectionMethod.allSchemas.formSchema.find(item=>item.field=='videoAddress')
uploadFile['componentProps']['modelValue']= row.filePathListView
} else if (type == 'update') {
const uploadFile = InspectionMethod.allSchemas.formSchema.find(
(item) => item.field == 'videoAddress'
)
uploadFile['componentProps']['modelValue'] = row.filePathListView
}
basicFormRef.value.open(type, row)
}
// form
const formsSuccess = async (formType,data) => {
if (formType === 'create') {
delete data['uploadFile']
await InspectionMethodApi.createInspectionMethod(data)
message.success(t('common.createSuccess'))
} else {
// debugger
await InspectionMethodApi.updateInspectionMethod(data)
message.success(t('common.updateSuccess'))
const formsSuccess = async (formType, data) => {
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
delete data['uploadFile']
await InspectionMethodApi.createInspectionMethod(data)
message.success(t('common.createSuccess'))
} else {
// debugger
await InspectionMethodApi.updateInspectionMethod(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -302,11 +334,10 @@ const searchFormClick = (searchData) => {
/** 初始化 **/
onMounted(async () => {
  tableObject.params = {
    available: true
  }
tableObject.params = {
available: true
}
getList()
importTemplateData.templateUrl = await InspectionMethodApi.importTemplate()
})
</script>

172
src/views/qms/inspectionQ1/index.vue

@ -1,18 +1,22 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="Q1.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="Q1.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="Q1.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="Q1.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
@ -27,13 +31,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #number="{row}">
<template #number="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -54,12 +61,17 @@
<Detail ref="detailRef" :isBasic="true" :allSchemas="Q1.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/basic/Q1/import" :importTemplateData="importTemplateData" @success="importSuccess" />
<ImportForm
ref="importFormRef"
url="/basic/Q1/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
/>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { Q1,Q1Rules } from './inspectionQ1.data'
import { Q1, Q1Rules } from './inspectionQ1.data'
import * as Q1Api from '@/api/qms/inspectionQ1'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
@ -81,17 +93,17 @@ const tableColumns = ref(Q1.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
nextTick(() => {
const setV = {}
if(formField == 'itemCode'){
console.log(val);
if (formField == 'customerCode') {
setV['itemCode'] = ''
}
if (formField == 'itemCode') {
setV['uom'] = val[0]['customerUom']
}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
})
}
//
@ -108,12 +120,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:Q1:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:Q1:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:Q1:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:Q1:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:Q1:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:Q1:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -126,21 +138,27 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.status) > -1) {
return false
} else {
@ -151,19 +169,31 @@ const isShowMainButton = (row,val) => {
// -
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['0']),hasPermi:'qms:Q1:update'}), //
defaultButtons.mainListDeleteBtn({hide:isShowMainButton(row,['0']),hasPermi:'qms:Q1:delete'}), //
defaultButtons.mainListFinishBtn({hide:isShowMainButton(row,['0']),hasPermi:'qms:Q1:finish'}), //
defaultButtons.mainListEditBtn({
hide: isShowMainButton(row, ['0']),
hasPermi: 'qms:Q1:update'
}), //
defaultButtons.mainListDeleteBtn({
hide: isShowMainButton(row, ['0']),
hasPermi: 'qms:Q1:delete'
}), //
defaultButtons.mainListFinishBtn({
hide: isShowMainButton(row, ['0']),
hasPermi: 'qms:Q1:finish'
}) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}else if (val == 'finish') { //
} else if (val == 'finish') {
//
handleFinish(row.id)
}
}
@ -181,49 +211,54 @@ const handleFinish = async (id: number) => {
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
if (type=='create') {
nextTick(() => {
    basicFormRef.value.formRef.setValues({
handleTime: new Date().getTime(),
claimTime: new Date().getTime(),
priority: '3',
    })
  })
if (type == 'create') {
nextTick(() => {
basicFormRef.value.formRef.setValues({
handleTime: new Date().getTime(),
claimTime: new Date().getTime(),
priority: '3'
})
})
}
 
}
// form
const formsSuccess = async (formType, data) => {
data.responUser = userStore.getUser.id
var isHave =Q1.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
var isHave = Q1.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return;
return
}
}
if (data.qty==0) {
message.error('数量不能为0')
return;
if (data.qty == 0) {
message.error('数量不能为0')
return
}
if (data.claimAmount==0) {
message.error('索赔金额不能为0')
return;
if (data.claimAmount == 0) {
message.error('索赔金额不能为0')
return
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await Q1Api.createQ1(data)
message.success(t('common.createSuccess'))
} else {
await Q1Api.updateQ1(data)
message.success(t('common.updateSuccess'))
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await Q1Api.createQ1(data)
message.success(t('common.createSuccess'))
} else {
await Q1Api.updateQ1(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -290,5 +325,4 @@ onMounted(async () => {
getList()
importTemplateData.templateUrl = await Q1Api.importTemplate()
})
</script>

57
src/views/qms/inspectionQ1/inspectionQ1.data.ts

@ -282,21 +282,21 @@ export const Q1 = useCrudSchemas(
{
label: '索赔日期',
field: 'claimTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: false,
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')]
}
isTable: false,
table: {
width: 180
},
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
@ -304,22 +304,21 @@ export const Q1 = useCrudSchemas(
{
label: '处理时间',
field: 'handleTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: false,
isTable: false,
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')]
}
table: {
width: 180
},
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
@ -367,23 +366,29 @@ export const Q1 = useCrudSchemas(
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
isForm: false,
table: {
width: 180
},
formatter: dateFormatter,
isSearch: false,
search: {
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
form: {
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')]
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
},
isForm: false
}
},
{
label: '操作',
field: 'action',
isForm: false,
isDetail: false,
table: {
width: 150,
fixed: 'right'

195
src/views/qms/inspectionQ2/index.vue

@ -1,18 +1,22 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="Q2.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="Q2.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="Q2.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="Q2.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
@ -27,13 +31,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #number="{row}">
<template #number="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -54,12 +61,17 @@
<Detail ref="detailRef" :isBasic="true" :allSchemas="Q2.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/basic/Q2/import" :importTemplateData="importTemplateData" @success="importSuccess" />
<ImportForm
ref="importFormRef"
url="/basic/Q2/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
/>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { Q2,Q2Rules } from './inspectionQ2.data'
import { Q2, Q2Rules } from './inspectionQ2.data'
import * as Q2Api from '@/api/qms/inspectionQ2'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
@ -81,31 +93,34 @@ const tableColumns = ref(Q2.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
nextTick(() => {
const setV = {}
if(formField == 'itemCode'){
if (formField == 'supplierCode') {
setV['itemCode'] = ''
}
if (formField == 'itemCode') {
setV['uom'] = val[0]['supplierUom']
}
// if (formField == 'q1Number') {
// console.log(123)
// setV['q1Number'] = val[0]['number']
// }
if (formField == 'purchaseReceiptNumber') {
}
// if (formField == 'q1Number') {
// console.log(123)
// setV['q1Number'] = val[0]['number']
// }
if (formField == 'purchaseReceiptNumber') {
setV['wmsQty'] = val[0]['qty']
}
if(formField == 'q1Number'){
}
if (formField == 'q1Number') {
//Q1
let list = []
val.forEach(item=>{
val.forEach((item) => {
list.push(item[searchField])
})
setV[formField] = list.join(',')
formRef.setValues(setV)
}else{
} else {
setV[formField] = val[0][searchField]
formRef.setValues(setV)
}
})
})
}
//
@ -122,12 +137,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:Q2:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:Q2:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:Q2:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:Q2:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:Q2:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:Q2:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -140,21 +155,27 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.status) > -1) {
return false
} else {
@ -165,19 +186,31 @@ const isShowMainButton = (row,val) => {
// -
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['0']),hasPermi:'qms:Q2:update'}), //
defaultButtons.mainListDeleteBtn({hide:isShowMainButton(row,['0']),hasPermi:'qms:Q2:delete'}), //
defaultButtons.mainListFinishBtn({hide:isShowMainButton(row,['0']),hasPermi:'qms:Q2:finish'}), //
defaultButtons.mainListEditBtn({
hide: isShowMainButton(row, ['0']),
hasPermi: 'qms:Q2:update'
}), //
defaultButtons.mainListDeleteBtn({
hide: isShowMainButton(row, ['0']),
hasPermi: 'qms:Q2:delete'
}), //
defaultButtons.mainListFinishBtn({
hide: isShowMainButton(row, ['0']),
hasPermi: 'qms:Q2:finish'
}) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}else if (val == 'finish') { //
} else if (val == 'finish') {
//
handleFinish(row.id)
}
}
@ -195,52 +228,59 @@ const handleFinish = async (id: number) => {
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
if (type=='create') {
nextTick(() => {
    basicFormRef.value.formRef.setValues({
handleTime: new Date().getTime(),
claimTime: new Date().getTime(),
priority: '3',
    })
  })
if (type == 'create') {
nextTick(() => {
basicFormRef.value.formRef.setValues({
handleTime: new Date().getTime(),
claimTime: new Date().getTime(),
priority: '3'
})
})
}
}
// form
const formsSuccess = async (formType, data) => {
data.responUser = userStore.getUser.id
var isHave =Q2.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
var isHave = Q2.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return;
return
}
}
if (data.qty>data.wmsQty) {
message.error('数量不能大于记录中的收货数量')
return;
if (data.qty > data.wmsQty) {
message.error('数量不能大于记录中的收货数量')
return
}
if (data.qty==0) {
message.error('数量不能为0')
return;
if (data.qty == 0) {
message.error('数量不能为0')
return
}
if (data.claimAmount==0) {
message.error('索赔金额不能为0')
return;
if (data.claimAmount == 0) {
message.error('索赔金额不能为0')
return
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await Q2Api.createQ2(data)
message.success(t('common.createSuccess'))
} else {
await Q2Api.updateQ2(data)
message.success(t('common.updateSuccess'))
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await Q2Api.createQ2(data)
message.success(t('common.createSuccess'))
} else {
await Q2Api.updateQ2(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -307,5 +347,4 @@ onMounted(async () => {
getList()
importTemplateData.templateUrl = await Q2Api.importTemplate()
})
</script>

58
src/views/qms/inspectionQ2/inspectionQ2.data.ts

@ -372,25 +372,23 @@ export const Q2 = useCrudSchemas(
}
}
},
{
label: '索赔日期',
field: 'claimTime',
sort: 'custom',
isForm: false,
table: {
width: 180
},
formatter: dateFormatter,
isSearch: false,
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')]
}
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
@ -398,22 +396,20 @@ export const Q2 = useCrudSchemas(
{
label: '处理时间',
field: 'handleTime',
sort: 'custom',
isForm: false,
table: {
width: 180
},
formatter: dateFormatter,
isSearch: false,
isTable: false,
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')]
}
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
@ -445,23 +441,29 @@ export const Q2 = useCrudSchemas(
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
isForm: false,
table: {
width: 180
},
formatter: dateFormatter,
isSearch: false,
search: {
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
form: {
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')]
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
},
isForm: false
}
},
{
label: '操作',
field: 'action',
isForm: false,
isDetail: false,
table: {
width: 150,
fixed: 'right'

174
src/views/qms/inspectionQ3/index.vue

@ -1,18 +1,22 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="Q3.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="Q3.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="Q3.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="Q3.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
@ -27,13 +31,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #number="{row}">
<template #number="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -54,12 +61,17 @@
<Detail ref="detailRef" :isBasic="true" :allSchemas="Q3.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/basic/Q3/import" :importTemplateData="importTemplateData" @success="importSuccess" />
<ImportForm
ref="importFormRef"
url="/basic/Q3/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
/>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { Q3,Q3Rules } from './inspectionQ3.data'
import { Q3, Q3Rules } from './inspectionQ3.data'
import * as Q3Api from '@/api/qms/inspectionQ3'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
@ -81,25 +93,25 @@ const tableColumns = ref(Q3.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
nextTick(() => {
const setV = {}
if(formField == 'itemCode'){
console.log(val);
if (formField == 'itemCode') {
console.log(val)
setV['uom'] = val[0]['uom']
}
if(formField == 'q1Number'){
}
if (formField == 'q1Number') {
//Q1
let list = []
val.forEach(item=>{
val.forEach((item) => {
list.push(item[searchField])
})
setV[formField] = list.join(',')
formRef.setValues(setV)
}else{
} else {
setV[formField] = val[0][searchField]
formRef.setValues(setV)
}
})
})
}
//
@ -116,12 +128,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:Q3:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:Q3:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:Q3:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:Q3:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:Q3:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:Q3:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -134,21 +146,27 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.status) > -1) {
return false
} else {
@ -159,19 +177,31 @@ const isShowMainButton = (row,val) => {
// -
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['0']),hasPermi:'qms:Q3:update'}), //
defaultButtons.mainListDeleteBtn({hide:isShowMainButton(row,['0']),hasPermi:'qms:Q3:delete'}), //
defaultButtons.mainListFinishBtn({hide:isShowMainButton(row,['0']),hasPermi:'qms:Q3:finish'}), //
defaultButtons.mainListEditBtn({
hide: isShowMainButton(row, ['0']),
hasPermi: 'qms:Q3:update'
}), //
defaultButtons.mainListDeleteBtn({
hide: isShowMainButton(row, ['0']),
hasPermi: 'qms:Q3:delete'
}), //
defaultButtons.mainListFinishBtn({
hide: isShowMainButton(row, ['0']),
hasPermi: 'qms:Q3:finish'
}) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}else if (val == 'finish') { //
} else if (val == 'finish') {
//
handleFinish(row.id)
}
}
@ -189,47 +219,54 @@ const handleFinish = async (id: number) => {
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
if (type=='create') {
nextTick(() => {
    basicFormRef.value.formRef.setValues({
handleTime: new Date().getTime(),
priority: '3',
    })
  })
if (type == 'create') {
nextTick(() => {
basicFormRef.value.formRef.setValues({
handleTime: new Date().getTime(),
priority: '3'
})
})
}
}
// form
const formsSuccess = async (formType, data) => {
data.responUser = userStore.getUser.id
var isHave =Q3.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
var isHave = Q3.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return;
return
}
}
if (data.qty==0) {
message.error('数量不能为0')
return;
if (data.qty == 0) {
message.error('数量不能为0')
return
}
if (data.amount==0) {
message.error('金额不能为0')
return;
if (data.amount == 0) {
message.error('金额不能为0')
return
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await Q3Api.createQ3(data)
message.success(t('common.createSuccess'))
} else {
await Q3Api.updateQ3(data)
message.success(t('common.updateSuccess'))
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await Q3Api.createQ3(data)
message.success(t('common.createSuccess'))
} else {
await Q3Api.updateQ3(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -296,5 +333,4 @@ onMounted(async () => {
getList()
importTemplateData.templateUrl = await Q3Api.importTemplate()
})
</script>

41
src/views/qms/inspectionQ3/inspectionQ3.data.ts

@ -334,22 +334,21 @@ export const Q3 = useCrudSchemas(
{
label: '处理时间',
field: 'handleTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: false,
isTable: false,
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')]
}
table: {
width: 180
},
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
@ -381,23 +380,31 @@ export const Q3 = useCrudSchemas(
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: false,
search: {
isTable: false,
isForm: false,
table: {
width: 180
},
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
form: {
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')]
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
},
isForm: false
}
},
{
label: '操作',
field: 'action',
isForm: false,
isDetail: false,
table: {
width: 150,
fixed: 'right'

10
src/views/qms/inspectionRecordFirst/addForm.vue

@ -1081,6 +1081,11 @@ const opensearchItemsTable = () => {
column: 'type',
action: 'in',
value: 'BCP,CCP'
},
{
column: 'status',
action: 'in',
value: 'ENABLE'
}
)
//
@ -1523,6 +1528,11 @@ const onItemBlur = async (field, pageApi) => {
column: 'code',
action: '==',
value: data.value[field]?.trim()
},
{
column: 'status',
action: 'in',
value: 'ENABLE'
}
)
//

4
src/views/qms/inspectionRecordFirst/detail.vue

@ -290,13 +290,13 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12" v-if="item.inspectionRecordCharacteristicsRespVO.featureType == '1'" >
<!-- <el-col :span="12" v-if="item.inspectionRecordCharacteristicsRespVO.featureType == '1'" >
<el-form-item label="缺陷级别">
<el-select v-model="cur.defectLevel" placeholder="请选择缺陷级别" disabled>
<el-option v-for="dict in getStrDictOptions(DICT_TYPE.DEFECT_LEVEL)" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="12">
<el-form-item label="备注">
<el-input v-model="cur.remark" placeholder="" type="number" disabled/>

2
src/views/qms/inspectionRecordFirst/index.vue

@ -244,6 +244,7 @@ const handleMainExport = async (row: any) => {
const submitForm = async (formType, data) => {
// data.subList = tableData.value //
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await InspectionRecordMainApi.createInspectionRecordMain(data)
message.success(t('common.createSuccess'))
@ -252,6 +253,7 @@ const handleMainExport = async (row: any) => {
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
//
getList()
} finally {

775
src/views/qms/inspectionRequest/index.vue

@ -1,375 +1,456 @@
<template>
<div>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="InspectionMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
</ContentWrap>
<!-- 列表头部 -->
<TableHead :HeadButttondata="HeadButttondata" @button-base-click="buttonBaseClick" :routeName="routeName"
@updataTableColumns="updataTableColumns" @searchFormClick="searchFormClick"
:allSchemas="InspectionMain.allSchemas" />
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable :columns="tableColumns" :data="tableObject.tableList" :loading="tableObject.loading" :pagination="{
total: tableObject.total
}" v-model:pageSize="tableObject.pageSize" v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort">
<template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="formRef"
@submitForm="submitForm"
basicFormWidth="60"
:rules="InspectionMainRules"
:formAllSchemas="InspectionMain.allSchemas"
:tableAllSchemas="InspectionRequestPackage.allSchemas"
:tableFormRules="InspectionRequestPackageRules"
:apiUpdate="InspectionMainApi.updateInspectionMain"
:apiCreate="InspectionMainApi.createInspectionMain"
:isBusiness="true"
:tableData="tableData"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
@searchTableSuccess="searchTableSuccess"
/>
<!-- 详情 -->
<Detail ref="detailRef" :isBasic="true" :allSchemas="InspectionMain.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/request/inspection-main/import" :importTemplateData="importTemplateData"
@success="importSuccess" />
<!-- 包装信息 -->
<ListTable ref="listTableRef" titleName="包装信息" :allSchemas="InspectionMain.allSchemas"
:detailAllSchemas="InspectionRequestPackage.allSchemas" :detailAllSchemasRules="InspectionRequestPackageRules"
:list="list" @ListTableSubmit='ListTableSubmit'/>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search
:schema="InspectionMain.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InspectionMain.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:pagination="{
total: tableObject.total
}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #number="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="formRef"
@submitForm="submitForm"
basicFormWidth="60"
:rules="InspectionMainRules"
:formAllSchemas="InspectionMain.allSchemas"
:tableAllSchemas="InspectionRequestPackage.allSchemas"
:tableFormRules="InspectionRequestPackageRules"
:apiUpdate="InspectionMainApi.updateInspectionMain"
:apiCreate="InspectionMainApi.createInspectionMain"
:isBusiness="true"
:tableData="tableData"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
@searchTableSuccess="searchTableSuccess"
/>
<!-- 详情 -->
<Detail ref="detailRef" :isBasic="true" :allSchemas="InspectionMain.allSchemas" />
<!-- 导入 -->
<ImportForm
ref="importFormRef"
url="/request/inspection-main/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
/>
<!-- 包装信息 -->
<ListTable
ref="listTableRef"
titleName="包装信息"
:allSchemas="InspectionMain.allSchemas"
:detailAllSchemas="InspectionRequestPackage.allSchemas"
:detailAllSchemasRules="InspectionRequestPackageRules"
:list="list"
@ListTableSubmit="ListTableSubmit"
/>
</div>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { InspectionMain, InspectionMainRules,InspectionRequestPackage,InspectionRequestPackageRules } from './inspectionRequestMain.data'
import * as InspectionMainApi from '@/api/qms/inspectionRequest'
import * as InspectionRequestPackageApi from '@/api/qms/inspectionRequest/InspectionRequestPackage'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import ListTable from '@/components/ListTable/src/ListTable.vue'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
// import { InspectionJobPackage} from '../inspectionJob/inspectionJobMain.data'
defineOptions({ name: 'InspectionMain' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(InspectionMain.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(formField)
console.log(searchField)
console.log(val)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
if(formField == 'itemCode'){
setV['itemName'] = val[0].name
}else if(formField == 'supplierCode'){
setV['supplierName'] = val[0].name
}
formRef.setValues(setV)
})
}
//
const updataTableColumns = (val) => {
tableColumns.value = val
}
import download from '@/utils/download'
import {
InspectionMain,
InspectionMainRules,
InspectionRequestPackage,
InspectionRequestPackageRules
} from './inspectionRequestMain.data'
import * as InspectionMainApi from '@/api/qms/inspectionRequest'
import * as InspectionRequestPackageApi from '@/api/qms/inspectionRequest/InspectionRequestPackage'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import ListTable from '@/components/ListTable/src/ListTable.vue'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
// import { InspectionJobPackage} from '../inspectionJob/inspectionJobMain.data'
defineOptions({ name: 'InspectionMain' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(InspectionMain.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(formField)
console.log(searchField)
console.log(val)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
if (formField == 'itemCode') {
setV['itemName'] = val[0].name
} else if (formField == 'supplierCode') {
setV['supplierName'] = val[0].name
}
const { tableObject, tableMethods } = useTable({
getListApi: InspectionMainApi.getInspectionMainPage //
formRef.setValues(setV)
})
}
//
const { getList, setSearchParams } = tableMethods
//
const updataTableColumns = (val) => {
tableColumns.value = val
}
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi: 'qms:inspection-request-main:create' }), //
// defaultButtons.defaultImportBtn({ hasPermi: 'wms:inspectionMain:import' }), //
// defaultButtons.defaultExportBtn({ hasPermi: 'wms:inspectionMain:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
// {
// label: '',
// name: 'zdy',
// hide: false,
// type: 'primary',
// icon: 'Select',
// color: ''
// },
]
const { tableObject, tableMethods } = useTable({
getListApi: InspectionMainApi.getInspectionMainPage //
})
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
openForm('create')
} else if (val == 'import') { //
handleImport()
} else if (val == 'export') { //
handleExport()
} else if (val == 'refresh') { //
tableObject.params.isSearch = false
tableObject.params.filters = ''
getList()
} else if (val == 'filtrate') { //
} else { //
console.log('其他按钮', item)
}
//
const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({ hasPermi: 'qms:inspection-request-main:create' }), //
// defaultButtons.defaultImportBtn({ hasPermi: 'wms:inspectionMain:import' }), //
// defaultButtons.defaultExportBtn({ hasPermi: 'wms:inspectionMain:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
// hide: false,
// type: 'primary',
// icon: 'Select',
// color: ''
// },
]
//
const buttonBaseClick = (val, item) => {
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') {
//
tableObject.params.isSearch = false
tableObject.params.filters = ''
getList()
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
//
const isShowMainButton = (row, val) => {
if (val.indexOf(row.status) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = (row) => {
return [
defaultButtons.mainListCloseBtn({ hide: isShowMainButton(row, ['1', '2', '3', '4', '6']), hasPermi: 'qms:inspection-request-main:close' }), //
// defaultButtons.mainListReAddBtn({ hide: isShowMainButton(row, ['5']), hasPermi: 'qms:inspection-request-main:reAdd' }), //
defaultButtons.mainListSubmitBtn({ hide: isShowMainButton(row, ['1']), hasPermi: 'qms:inspection-request-main:submit' }), //
defaultButtons.mainListTurnDownBtn({ hide: isShowMainButton(row, ['2']), hasPermi: 'qms:inspection-request-main:refused' }), //
defaultButtons.mainListApproveBtn({ hide: isShowMainButton(row, ['2']), hasPermi: 'qms:inspection-request-main:agree' }), //
defaultButtons.mainListHandleBtn({ hide: isShowMainButton(row, ['3']), hasPermi: 'qms:inspection-request-main:handle' }), //
defaultButtons.mainListPackageBtn(null), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'qms:inspection-request-main:edit'}), //
]
//
const isShowMainButton = (row, val) => {
if (val.indexOf(row.status) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = (row) => {
return [
defaultButtons.mainListCloseBtn({
hide: isShowMainButton(row, ['1', '2', '3', '4', '6']),
hasPermi: 'qms:inspection-request-main:close'
}), //
// defaultButtons.mainListReAddBtn({ hide: isShowMainButton(row, ['5']), hasPermi: 'qms:inspection-request-main:reAdd' }), //
defaultButtons.mainListSubmitBtn({
hide: isShowMainButton(row, ['1']),
hasPermi: 'qms:inspection-request-main:submit'
}), //
defaultButtons.mainListTurnDownBtn({
hide: isShowMainButton(row, ['2']),
hasPermi: 'qms:inspection-request-main:refused'
}), //
defaultButtons.mainListApproveBtn({
hide: isShowMainButton(row, ['2']),
hasPermi: 'qms:inspection-request-main:agree'
}), //
defaultButtons.mainListHandleBtn({
hide: isShowMainButton(row, ['3']),
hasPermi: 'qms:inspection-request-main:handle'
}), //
defaultButtons.mainListPackageBtn(null), //
defaultButtons.mainListEditBtn({
hide: isShowMainButton(row, ['1']),
hasPermi: 'qms:inspection-request-main:edit'
}) //
]
}
const listTableRef = ref()
const list = ref([])
// -
const buttonTableClick = async (val, row) => {
if (val == 'mainClose') { //
handleClose(row.id)
} else if (val == 'mainReAdd') { //
handleReAdd(row.id)
} else if (val == 'mainSubmit') { //
handleSubmit(row.id)
} else if (val == 'mainTurnDown') { //
handleRefused(row.id)
} else if (val == 'mainApprove') { //
handleAgree(row.id)
} else if (val == 'mainHandle') { //
handleHandle(row.id)
} else if (val == 'edit') { //
openForm('update', row)
}else if (val == 'mainPackage') { //
list.value = await InspectionRequestPackageApi.getInspectionRequestPackageList(row.id)
// row.status = '1'
listTableRef.value.openPackage(row,'包装信息',InspectionRequestPackage.allSchemas.tableColumns)
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'mainClose') {
//
handleClose(row.id)
} else if (val == 'mainReAdd') {
//
handleReAdd(row.id)
} else if (val == 'mainSubmit') {
//
handleSubmit(row.id)
} else if (val == 'mainTurnDown') {
//
handleRefused(row.id)
} else if (val == 'mainApprove') {
//
handleAgree(row.id)
} else if (val == 'mainHandle') {
//
handleHandle(row.id)
} else if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'mainPackage') {
//
list.value = await InspectionRequestPackageApi.getInspectionRequestPackageList(row.id)
// row.status = '1'
listTableRef.value.openPackage(
row,
'包装信息',
InspectionRequestPackage.allSchemas.tableColumns
)
}
}
/** 关闭按钮操作 */
const handleClose = async (id : number) => {
try{
await message.confirm(t('common.confirmColse'))
tableObject.loading = true
await InspectionMainApi.closeInspectRequestMain(id)
message.success(t('common.closeSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
/** 关闭按钮操作 */
const handleClose = async (id: number) => {
try {
await message.confirm(t('common.confirmColse'))
tableObject.loading = true
await InspectionMainApi.closeInspectRequestMain(id)
message.success(t('common.closeSuccess'))
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 重新添加按钮操作 */
const handleReAdd = async (id : number) => {
try{
await message.confirm(t('common.confirmReAdd'))
tableObject.loading = true
await InspectionMainApi.reAddInspectRequestMain(id)
message.success(t('common.reAddSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
/** 重新添加按钮操作 */
const handleReAdd = async (id: number) => {
try {
await message.confirm(t('common.confirmReAdd'))
tableObject.loading = true
await InspectionMainApi.reAddInspectRequestMain(id)
message.success(t('common.reAddSuccess'))
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 审批通过按钮操作 */
const handleAgree = async (id : number) => {
try{
await message.confirm(t('common.confirmAgree'))
tableObject.loading = true
await InspectionMainApi.agreeInspectRequestMain(id)
message.success(t('common.agreeSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
/** 审批通过按钮操作 */
const handleAgree = async (id: number) => {
try {
await message.confirm(t('common.confirmAgree'))
tableObject.loading = true
await InspectionMainApi.agreeInspectRequestMain(id)
message.success(t('common.agreeSuccess'))
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 审批驳回按钮操作 */
const handleRefused = async (id : number) => {
try{
await message.confirm(t('common.confirmRefused'))
tableObject.loading = true
await InspectionMainApi.refusedInspectRequestMain(id)
message.success(t('common.refusedSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
/** 审批驳回按钮操作 */
const handleRefused = async (id: number) => {
try {
await message.confirm(t('common.confirmRefused'))
tableObject.loading = true
await InspectionMainApi.refusedInspectRequestMain(id)
message.success(t('common.refusedSuccess'))
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 处理按钮操作 */
const handleHandle = async (id : number) => {
try{
await message.confirm(t('common.confirmHandle'))
tableObject.loading = true
await InspectionMainApi.handleInspectRequestMain(id)
message.success(t('common.dealwithSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
/** 处理按钮操作 */
const handleHandle = async (id: number) => {
try {
await message.confirm(t('common.confirmHandle'))
tableObject.loading = true
await InspectionMainApi.handleInspectRequestMain(id)
message.success(t('common.dealwithSuccess'))
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 提交按钮操作 */
const handleSubmit = async (id : number) => {
try{
await message.confirm(t('common.confirmSubmit'))
tableObject.loading = true
await InspectionMainApi.submitInspectRequestMain(id)
message.success(t('common.submitSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
/** 提交按钮操作 */
const handleSubmit = async (id: number) => {
try {
await message.confirm(t('common.confirmSubmit'))
tableObject.loading = true
await InspectionMainApi.submitInspectRequestMain(id)
message.success(t('common.submitSuccess'))
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = async (type : string, row ?: number) => {
tableData.value = [] //
formRef.value.open(type, row)
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = async (type: string, row?: number) => {
tableData.value = [] //
formRef.value.open(type, row)
}
// form
const submitForm = async (formType, data) => {
var isHave = InspectionMain.allSchemas.formSchema.some(function (item) {
return item.field === 'requestStartTime' || item.field === 'requestEndTime';
});
if (isHave){
if (data.requestStartTime && data.requestEndTime && data.requestStartTime >= data.requestEndTime) {
message.error('要求结束时间要大于要求开始时间')
return;
}
// form
const submitForm = async (formType, data) => {
var isHave = InspectionMain.allSchemas.formSchema.some(function (item) {
return item.field === 'requestStartTime' || item.field === 'requestEndTime'
})
if (isHave) {
if (
data.requestStartTime &&
data.requestEndTime &&
data.requestStartTime >= data.requestEndTime
) {
message.error('要求结束时间要大于要求开始时间')
return
}
if (data.requestStartTime == 0) data.requestStartTime = null;
if (data.requestEndTime == 0) data.requestEndTime = null;
data.inspectionRequestPackageCreateReqVO = tableData.value //
try{
if (formType === 'create') {
}
if (data.requestStartTime == 0) data.requestStartTime = null
if (data.requestEndTime == 0) data.requestEndTime = null
data.inspectionRequestPackageCreateReqVO = tableData.value //
try {
formRef.value.formLoading = true
if (formType === 'create') {
await InspectionMainApi.createInspectionMain(data)
message.success(t('common.createSuccess'))
} else {
await InspectionMainApi.updateInspectionMain(data)
message.success(t('common.updateSuccess'))
}
formRef.value.dialogVisible = false
getList()
}finally{
formRef.value.formLoading = false
} else {
await InspectionMainApi.updateInspectionMain(data)
message.success(t('common.updateSuccess'))
}
formRef.value.dialogVisible = false
formRef.value.formLoading = false
getList()
} finally {
formRef.value.formLoading = false
}
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row : any, titleName : any, titleValue : any) => {
detailRef.value.openDetail(row, titleName, titleValue, 'basicInspectionMain')
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue, 'basicInspectionMain')
}
/** 删除按钮操作 */
const handleDelete = async (id : number) => {
try {
//
await message.delConfirm()
//
await InspectionMainApi.deleteInspectionMain(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch { }
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await InspectionMainApi.deleteInspectionMain(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await InspectionMainApi.exportInspectionMain(tableObject.params)
download.excel(data, '检验申请.xlsx')
} catch {
} finally {
exportLoading.value = false
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await InspectionMainApi.exportInspectionMain(tableObject.params)
download.excel(data, '检验申请.xlsx')
} catch {
} finally {
exportLoading.value = false
}
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: '检验申请导入模版.xlsx'
})
//
const importSuccess = () => {
getList()
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: '检验申请导入模版.xlsx'
})
//
const importSuccess = () => {
getList()
}
//
const searchFormClick = (searchData) => {
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() //
//
const searchFormClick = (searchData) => {
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() //
}
/**
* tableForm方法
*/
* tableForm方法
*/
const tableFormKeys = {}
InspectionRequestPackage.allSchemas.tableFormColumns.forEach(item => {
InspectionRequestPackage.allSchemas.tableFormColumns.forEach((item) => {
tableFormKeys[item.field] = item.default ? item.default : ''
})
const tableData = ref([])
@ -382,26 +463,26 @@ const handleAddTable = () => {
const handleDeleteTable = (item, index) => {
tableData.value.splice(index, 1)
}
const ListTableSubmit =async (formType,data)=>{
console.log(formType,data)
if (formType === 'create') {
await InspectionRequestPackageApi.createInspectionRequestPackage(data)
message.success(t('common.createSuccess'))
} else if(formType === 'updete') {
await InspectionRequestPackageApi.updateInspectionRequestPackage(data)
message.success(t('common.updateSuccess'))
}else {
await InspectionRequestPackageApi.deleteInspectionRequestPackage(data.id)
message.success(t('common.updateSuccess'))
}
list.value = await InspectionRequestPackageApi.getInspectionRequestPackageList(data.masterId)
const ListTableSubmit = async (formType, data) => {
console.log(formType, data)
if (formType === 'create') {
await InspectionRequestPackageApi.createInspectionRequestPackage(data)
message.success(t('common.createSuccess'))
} else if (formType === 'updete') {
await InspectionRequestPackageApi.updateInspectionRequestPackage(data)
message.success(t('common.updateSuccess'))
} else {
await InspectionRequestPackageApi.deleteInspectionRequestPackage(data.id)
message.success(t('common.updateSuccess'))
}
list.value = await InspectionRequestPackageApi.getInspectionRequestPackageList(data.masterId)
}
/** 初始化 **/
/** 初始化 **/
onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList()
importTemplateData.templateUrl = await InspectionMainApi.importTemplate()
})
tableObject.params = {
available: true
}
getList()
importTemplateData.templateUrl = await InspectionMainApi.importTemplate()
})
</script>

148
src/views/qms/inspectionScheme/index.vue

@ -1,22 +1,27 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="InspectionSchemeMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="InspectionSchemeMain.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InspectionSchemeMain.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InspectionSchemeMain.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,13 +32,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #reqCode="{row}">
<template #reqCode="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.reqCode)">
<span>{{ row.reqCode }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -60,16 +68,21 @@
<script setup lang="ts">
import download from '@/utils/download'
import {InspectionSchemeMain } from './inspectionScheme.data'
import { InspectionTemplateMain,InspectionTemplateProcess,InspectionTemplateFeatures,InspectionTemplateRules } from '../inspectionTemplate/inspectionTemplate.data'
import { InspectionSchemeMain } from './inspectionScheme.data'
import {
InspectionTemplateMain,
InspectionTemplateProcess,
InspectionTemplateFeatures,
InspectionTemplateRules
} from '../inspectionTemplate/inspectionTemplate.data'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import Detail from '@/components/Detail/src/Detail.vue'
import AddForm from './addForm.vue'
import * as InspectionSchemeApi from '@/api/qms/inspectionScheme'
import ImportForm from "../../../components/ImportForm/src/ImportForm.vue";
import * as SampleCodeApi from "@/api/qms/sampleCode";
import ImportForm from '../../../components/ImportForm/src/ImportForm.vue'
import * as SampleCodeApi from '@/api/qms/sampleCode'
defineOptions({ name: 'InspectionScheme' })
@ -95,12 +108,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:inspection-scheme:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:inspection-scheme:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:inspection-scheme:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:inspection-scheme:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:inspection-scheme:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:inspection-scheme:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -113,21 +126,27 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
@ -137,25 +156,33 @@ const isShowMainButton = (row,val) => {
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi: 'qms:inspection-scheme:update'}),
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'qms:inspection-scheme:enable'}),
defaultButtons.mainListDisableBtn({hide:isShowMainButton(row,['TRUE']),hasPermi:'qms:inspection-scheme:disable'}),
defaultButtons.mainListEditBtn({ hasPermi: 'qms:inspection-scheme:update' }),
defaultButtons.mainListEnableBtn({
hide: isShowMainButton(row, ['FALSE']),
hasPermi: 'qms:inspection-scheme:enable'
}),
defaultButtons.mainListDisableBtn({
hide: isShowMainButton(row, ['TRUE']),
hasPermi: 'qms:inspection-scheme:disable'
}),
defaultButtons.mainCopyBtn({ hasPermi: 'qms:programme-template:copy' }),
defaultButtons.mainListDeleteBtn({hasPermi:'qms:inspection-scheme:delete'}), //
defaultButtons.mainListDeleteBtn({ hasPermi: 'qms:inspection-scheme:delete' }) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}else if (val == 'enable') {
} else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
} else if (val == 'disable') {
handleDisable(row.id)
}else if (val == 'copy') {
} else if (val == 'copy') {
openForm('create', row)
}
}
@ -170,19 +197,19 @@ const openForm = (type: string, row?: any) => {
}
// form
const submitForm = async (formType,data) => {
var isHave =InspectionSchemeMain.allSchemas.formSchema.some(function (item) {
return item.field === 'effectiveDate' || item.field === 'expirationDate';
});
if(isHave){
if(data.effectiveDate && data.expirationDate && data.effectiveDate >=data.expirationDate){
const submitForm = async (formType, data) => {
var isHave = InspectionSchemeMain.allSchemas.formSchema.some(function (item) {
return item.field === 'effectiveDate' || item.field === 'expirationDate'
})
if (isHave) {
if (data.effectiveDate && data.expirationDate && data.effectiveDate >= data.expirationDate) {
message.error('失效时间要大于生效时间')
return;
return
}
}
const data1 = {
id: data.id,
dynamicUpdateCode:data.dynamicUpdateCode,
dynamicUpdateCode: data.dynamicUpdateCode,
code: data.code,
description: data.description,
itemCode: data.itemCode,
@ -197,17 +224,23 @@ const submitForm = async (formType,data) => {
samplePieceSize: data.samplePieceSize,
uom: data.uom,
available: data.available,
content:JSON.stringify(data.process)
content: JSON.stringify(data.process)
}
if (formType === 'create') {
await InspectionSchemeApi.InspectionSchemeCreat(data1)
message.success(t('common.createSuccess'))
} else {
await InspectionSchemeApi.InspectionSchemeUpdate(data1)
message.success(t('common.updateSuccess'))
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await InspectionSchemeApi.InspectionSchemeCreat(data1)
message.success(t('common.createSuccess'))
} else {
await InspectionSchemeApi.InspectionSchemeUpdate(data1)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -287,11 +320,10 @@ const importSuccess = () => {
/** 初始化 **/
onMounted(async () => {
  tableObject.params = {
    available: true
  }
tableObject.params = {
available: true
}
getList()
importTemplateData.templateUrl = await InspectionSchemeApi.importTemplate()
})
</script>

117
src/views/qms/inspectionStage/index.vue

@ -1,22 +1,27 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="InspectionStage.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="InspectionStage.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InspectionStage.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InspectionStage.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,13 +32,13 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<template #code="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event, row)" />
</template>
</Table>
</ContentWrap>
@ -54,12 +59,17 @@
<Detail ref="detailRef" :isBasic="true" :allSchemas="InspectionStage.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/qms/inspection-stage/import" :importTemplateData="importTemplateData" @success="importSuccess" />
<ImportForm
ref="importFormRef"
url="/qms/inspection-stage/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
/>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { InspectionStage,InspectionStageRules } from './inspectionStage.data'
import { InspectionStage, InspectionStageRules } from './inspectionStage.data'
import * as InspectionStageApi from '@/api/qms/inspectionStage'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
// import TableHead from '@/components/TableHead/src/TableHead.vue'
@ -99,12 +109,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:inspectionStage:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:inspectionStage:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:inspectionStage:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'wms:inspectionStage:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'wms:inspectionStage:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'wms:inspectionStage:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -117,31 +127,39 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
// -
const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'wms:inspectionStage:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'wms:inspectionStage:delete'}), //
defaultButtons.mainListEditBtn({ hasPermi: 'wms:inspectionStage:update' }), //
defaultButtons.mainListDeleteBtn({ hasPermi: 'wms:inspectionStage:delete' }) //
]
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}
}
@ -153,27 +171,33 @@ const openForm = (type: string, row?: any) => {
}
// form
const formsSuccess = async (formType,data) => {
var isHave =InspectionStage.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
const formsSuccess = async (formType, data) => {
var isHave = InspectionStage.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return;
return
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await InspectionStageApi.createInspectionStage(data)
message.success(t('common.createSuccess'))
} else {
await InspectionStageApi.updateInspectionStage(data)
message.success(t('common.updateSuccess'))
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await InspectionStageApi.createInspectionStage(data)
message.success(t('common.createSuccess'))
} else {
await InspectionStageApi.updateInspectionStage(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -240,5 +264,4 @@ onMounted(async () => {
getList()
importTemplateData.templateUrl = await InspectionStageApi.importTemplate()
})
</script>

132
src/views/qms/inspectionTemplate/index.vue

@ -1,22 +1,27 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="InspectionTemplateMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="InspectionTemplateMain.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InspectionTemplateMain.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InspectionTemplateMain.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,13 +32,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #reqCode="{row}">
<template #reqCode="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.reqCode)">
<span>{{ row.reqCode }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -49,11 +57,7 @@
@submitForm="submitForm"
/>
<!-- 详情 -->
<Detail
ref="detailRef"
:isBasic="true"
:allSchemas="InspectionTemplateMain.allSchemas"
/>
<Detail ref="detailRef" :isBasic="true" :allSchemas="InspectionTemplateMain.allSchemas" />
<!-- 导入 -->
<ImportForm
@ -69,7 +73,12 @@
<script setup lang="ts">
import download from '@/utils/download'
import { InspectionTemplateMain,InspectionTemplateProcess,InspectionTemplateFeatures,InspectionTemplateRules } from './inspectionTemplate.data'
import {
InspectionTemplateMain,
InspectionTemplateProcess,
InspectionTemplateFeatures,
InspectionTemplateRules
} from './inspectionTemplate.data'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
@ -101,12 +110,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:programme-template:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:programme-template:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:programme-template:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:programme-template:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:programme-template:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:programme-template:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -119,16 +128,22 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
@ -149,7 +164,7 @@ const handleExport = async () => {
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
@ -159,25 +174,33 @@ const isShowMainButton = (row,val) => {
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi: 'qms:programme-template:update'}),
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'qms:programme-template:enable'}),
defaultButtons.mainListDisableBtn({hide:isShowMainButton(row,['TRUE']),hasPermi:'qms:programme-template:disable'}),
defaultButtons.mainListEditBtn({ hasPermi: 'qms:programme-template:update' }),
defaultButtons.mainListEnableBtn({
hide: isShowMainButton(row, ['FALSE']),
hasPermi: 'qms:programme-template:enable'
}),
defaultButtons.mainListDisableBtn({
hide: isShowMainButton(row, ['TRUE']),
hasPermi: 'qms:programme-template:disable'
}),
defaultButtons.mainCopyBtn({ hasPermi: 'qms:programme-template:copy' }),
defaultButtons.mainListDeleteBtn({hasPermi:'qms:programme-template:delete'}), //
defaultButtons.mainListDeleteBtn({ hasPermi: 'qms:programme-template:delete' }) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}else if (val == 'enable') {
} else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
} else if (val == 'disable') {
handleDisable(row.id)
}else if (val == 'copy') {
} else if (val == 'copy') {
openForm('create', row)
}
}
@ -189,16 +212,22 @@ const openForm = (type: string, row?: any) => {
}
// form
const submitForm = async (formType,data) => {
if (formType === 'create') {
await InspectionProcessPageApi.inspectionTemplateCreat(data.value)
message.success(t('common.createSuccess'))
} else {
await InspectionProcessPageApi.inspectionTemplateUpdate(data.value)
message.success(t('common.updateSuccess'))
const submitForm = async (formType, data) => {
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await InspectionProcessPageApi.inspectionTemplateCreat(data.value)
message.success(t('common.createSuccess'))
} else {
await InspectionProcessPageApi.inspectionTemplateUpdate(data.value)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -263,11 +292,10 @@ const importSuccess = () => {
/** 初始化 **/
onMounted(async () => {
  tableObject.params = {
    available: true
  }
tableObject.params = {
available: true
}
getList()
importTemplateData.templateUrl = await InspectionProcessPageApi.importTemplate()
})
</script>

2
src/views/qms/qualityNotice/index.vue

@ -184,6 +184,7 @@
//
const submitForm = async (formType, data) => {
try {
formRef.value.formLoading = true
if (formType === 'create') {
await qualityNoticeApi.qualityNoticeCreat(data)
message.success(t('common.createSuccess'))
@ -192,6 +193,7 @@
message.success(t('common.updateSuccess'))
}
formRef.value.dialogVisible = false
formRef.value.formLoading = false
//
getList()
} finally {

155
src/views/qms/sampleCode/index.vue

@ -1,22 +1,27 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="SampleCode.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="SampleCode.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SampleCode.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SampleCode.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,13 +32,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<template #code="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -55,12 +63,17 @@
<Detail ref="detailRef" :isBasic="true" :allSchemas="SampleCode.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/qms/sample-code/import" :importTemplateData="importTemplateData" @success="importSuccess" />
<ImportForm
ref="importFormRef"
url="/qms/sample-code/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
/>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { SampleCode,SampleCodeRules } from './sampleCode.data'
import { SampleCode, SampleCodeRules } from './sampleCode.data'
import * as SampleCodeApi from '@/api/qms/sampleCode'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
@ -100,12 +113,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:sample-code:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:sample-code:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:sample-code:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:sample-code:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:sample-code:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:sample-code:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -118,27 +131,33 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
tableObject.params.isSearch = false
tableObject.params.filters = ''
// tableObject.params = {
// isSearch: true,
// filters: searchData.filters
// }
// tableObject.params = {
// isSearch: true,
// filters: searchData.filters
// }
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
@ -148,23 +167,30 @@ const isShowMainButton = (row,val) => {
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi: 'qms:sample-code:update'}),
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'qms:sample-code:enable'}),
defaultButtons.mainListDisableBtn({ hide: isShowMainButton(row, ['TRUE']), hasPermi: 'qms:sample-code:disable' }),
defaultButtons.mainListDeleteBtn({hasPermi:'qms:sample-code:delete'}), //
defaultButtons.mainListEditBtn({ hasPermi: 'qms:sample-code:update' }),
defaultButtons.mainListEnableBtn({
hide: isShowMainButton(row, ['FALSE']),
hasPermi: 'qms:sample-code:enable'
}),
defaultButtons.mainListDisableBtn({
hide: isShowMainButton(row, ['TRUE']),
hasPermi: 'qms:sample-code:disable'
}),
defaultButtons.mainListDeleteBtn({ hasPermi: 'qms:sample-code:delete' }) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}else if (val == 'enable') {
} else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
} else if (val == 'disable') {
handleDisable(row.id)
}
}
@ -176,32 +202,38 @@ const openForm = (type: string, row?: any) => {
}
// form
const formsSuccess = async (formType,data) => {
if(data.batchLowLimiting >= data.batchUpperLimiting){
const formsSuccess = async (formType, data) => {
if (data.batchLowLimiting >= data.batchUpperLimiting) {
message.alertWarning('批量上限须大于批量下限')
basicFormRef.value.formLoading = false
return
}
var isHave =SampleCode.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
var isHave = SampleCode.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return;
return
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await SampleCodeApi.createSampleCode(data)
message.success(t('common.createSuccess'))
} else {
await SampleCodeApi.updateSampleCode(data)
message.success(t('common.updateSuccess'))
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await SampleCodeApi.createSampleCode(data)
message.success(t('common.createSuccess'))
} else {
await SampleCodeApi.updateSampleCode(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -279,21 +311,20 @@ const searchFormClick = (searchData) => {
getList() //
}
const onChange = async (field, value, formRef) => {
if(field == "batchLowLimiting" || field == "batchUpperLimiting"){
if (field == 'batchLowLimiting' || field == 'batchUpperLimiting') {
var upperLimit = formRef.value.formModel.batchUpperLimiting
var lowLimit = formRef.value.formModel.batchLowLimiting
if(parseInt(upperLimit) <= parseInt(lowLimit)){
message.warning("批量上限须大于批量下限")
if (parseInt(upperLimit) <= parseInt(lowLimit)) {
message.warning('批量上限须大于批量下限')
}
}
}
/** 初始化 **/
onMounted(async () => {
tableObject.params = {
tableObject.params = {
available: true
}
getList()
importTemplateData.templateUrl = await SampleCodeApi.importTemplate()
})
</script>

239
src/views/qms/samplingProcess/index.vue

@ -1,22 +1,27 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="SamplingProcess.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="SamplingProcess.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SamplingProcess.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SamplingProcess.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,13 +32,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<template #code="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -68,13 +76,13 @@
<script setup lang="ts">
import download from '@/utils/download'
import { SamplingProcess,SamplingProcessRules } from './samplingProcess.data'
import { SamplingProcess, SamplingProcessRules } from './samplingProcess.data'
import * as SamplingProcessApi from '@/api/qms/samplingProcess'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
import {validatePercent, validateInteger, validateTwoNum } from '@/utils/validator'
import { validatePercent, validateInteger, validateTwoNum } from '@/utils/validator'
defineOptions({ name: 'SamplingProcess' })
@ -109,12 +117,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:sampling-process:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:sampling-process:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:sampling-process:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:sampling-process:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:sampling-process:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:sampling-process:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -127,21 +135,27 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
@ -151,22 +165,30 @@ const isShowMainButton = (row,val) => {
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi: 'qms:sampling-process:update'}),
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'qms:sampling-process:enable'}),
defaultButtons.mainListDisableBtn({ hide: isShowMainButton(row, ['TRUE']), hasPermi: 'qms:sampling-process:disable' }),
defaultButtons.mainListDeleteBtn({hasPermi:'qms:sampling-process:delete'}), //
defaultButtons.mainListEditBtn({ hasPermi: 'qms:sampling-process:update' }),
defaultButtons.mainListEnableBtn({
hide: isShowMainButton(row, ['FALSE']),
hasPermi: 'qms:sampling-process:enable'
}),
defaultButtons.mainListDisableBtn({
hide: isShowMainButton(row, ['TRUE']),
hasPermi: 'qms:sampling-process:disable'
}),
defaultButtons.mainListDeleteBtn({ hasPermi: 'qms:sampling-process:delete' }) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}else if (val == 'enable') {
} else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
} else if (val == 'disable') {
handleDisable(row.id)
}
}
@ -175,27 +197,34 @@ const buttonTableClick = async (val, row) => {
const basicFormRef = ref()
// form
const formsSuccess = async (formType,data) => {
var isHave =SamplingProcess.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
const formsSuccess = async (formType, data) => {
var isHave = SamplingProcess.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return;
return
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await SamplingProcessApi.createSamplingProcess(data)
message.success(t('common.createSuccess'))
} else {
await SamplingProcessApi.updateSamplingProcess(data)
message.success(t('common.updateSuccess'))
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await SamplingProcessApi.createSamplingProcess(data)
message.success(t('common.createSuccess'))
} else {
await SamplingProcessApi.updateSamplingProcess(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -265,74 +294,85 @@ const importSuccess = () => {
}
const updateFormFields = (sampleType, formRef) => {
let sampleQtyLabel = '';
let sampleQtyDisabled = false;
let sampleProgCodeDisabled = true;
let sampleQtyRequired = false;
let sampleProgCodeRequired = false;
let sampleQtyLabel = ''
let sampleQtyDisabled = false
let sampleProgCodeDisabled = true
let sampleQtyRequired = false
let sampleProgCodeRequired = false
switch (sampleType) {
case '1':
sampleQtyLabel = '样品份数';
sampleQtyDisabled = true;
sampleQtyRequired = false;
SamplingProcessRules.sampleQty = [{ required: false, message: '该项为必填项', trigger: 'blur'}]
break;
sampleQtyLabel = '样品份数'
sampleQtyDisabled = true
sampleQtyRequired = false
SamplingProcessRules.sampleQty = [
{ required: false, message: '该项为必填项', trigger: 'blur' }
]
break
case '2':
sampleQtyLabel = '样品份数(%)';
sampleQtyDisabled = false;
sampleQtyRequired = true;
SamplingProcessRules.sampleQty = [{ required: true, message: '该项为必填项', trigger: 'blur' },{validator:validatePercent, message: '百分比范围 0 ~ 100', trigger: 'blur'},{validator:validateTwoNum, message: '小数点后最多2位', trigger: 'blur'}]
break;
sampleQtyLabel = '样品份数(%)'
sampleQtyDisabled = false
sampleQtyRequired = true
SamplingProcessRules.sampleQty = [
{ required: true, message: '该项为必填项', trigger: 'blur' },
{ validator: validatePercent, message: '百分比范围 0 ~ 100', trigger: 'blur' },
{ validator: validateTwoNum, message: '小数点后最多2位', trigger: 'blur' }
]
break
case '3':
sampleQtyLabel = '样品份数';
sampleQtyDisabled = false;
sampleQtyRequired = true;
SamplingProcessRules.sampleQty = [{ required: true, message: '该项为必填项', trigger: 'blur' },{validator:validateInteger, message: '样品份数必须为正整数', trigger: 'blur'}]
break;
sampleQtyLabel = '样品份数'
sampleQtyDisabled = false
sampleQtyRequired = true
SamplingProcessRules.sampleQty = [
{ required: true, message: '该项为必填项', trigger: 'blur' },
{ validator: validateInteger, message: '样品份数必须为正整数', trigger: 'blur' }
]
break
case '4':
sampleQtyLabel = '样品份数';
sampleQtyDisabled = true;
sampleQtyRequired = false;
sampleProgCodeDisabled = false;
sampleProgCodeRequired = true;
SamplingProcessRules.sampleQty = [{ required: false, message: '该项为必填项', trigger: 'blur'}]
break;
sampleQtyLabel = '样品份数'
sampleQtyDisabled = true
sampleQtyRequired = false
sampleProgCodeDisabled = false
sampleProgCodeRequired = true
SamplingProcessRules.sampleQty = [
{ required: false, message: '该项为必填项', trigger: 'blur' }
]
break
default:
break;
break
}
SamplingProcess.allSchemas.formSchema.forEach(item => {
SamplingProcess.allSchemas.formSchema.forEach((item) => {
if (item.field === 'sampleQty') {
item.label = sampleQtyLabel;
item.componentProps.disabled = sampleQtyDisabled;
item.label = sampleQtyLabel
item.componentProps.disabled = sampleQtyDisabled
}
if (item.field === 'sampleProgCode') {
item.componentProps.disabled = sampleProgCodeDisabled;
item.componentProps.disabled = sampleProgCodeDisabled
}
});
})
SamplingProcessRules.sampleQty[0].required = sampleQtyRequired;
SamplingProcessRules.sampleProgCode[0].required = sampleProgCodeRequired;
SamplingProcessRules.sampleQty[0].required = sampleQtyRequired
SamplingProcessRules.sampleProgCode[0].required = sampleProgCodeRequired
formRef.value.setValues({
sampleQty: '',
sampleProgCode: '',
});
};
sampleProgCode: ''
})
}
const openForm = async (type, row) => {
basicFormRef.value.open(type, row);
updateFormFields(row.sampleType, basicFormRef);
};
basicFormRef.value.open(type, row)
updateFormFields(row.sampleType, basicFormRef)
}
const onChange = async (field, value, formRef) => {
if (field === 'sampleType') {
updateFormFields(value, formRef);
updateFormFields(value, formRef)
}
};
}
//
const searchFormClick = (searchData) => {
@ -345,11 +385,10 @@ const searchFormClick = (searchData) => {
/** 初始化 **/
onMounted(async () => {
  tableObject.params = {
    available: true
  }
tableObject.params = {
available: true
}
getList()
importTemplateData.templateUrl = await SamplingProcessApi.importTemplate()
})
</script>

134
src/views/qms/samplingScheme/index.vue

@ -1,22 +1,27 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="SamplingScheme.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="SamplingScheme.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SamplingScheme.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SamplingScheme.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,13 +32,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<template #code="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -54,12 +62,17 @@
<Detail ref="detailRef" :isBasic="true" :allSchemas="SamplingScheme.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/qms/sampling-scheme/import" :importTemplateData="importTemplateData" @success="importSuccess" />
<ImportForm
ref="importFormRef"
url="/qms/sampling-scheme/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
/>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { SamplingScheme,SamplingSchemeRules } from './samplingScheme.data'
import { SamplingScheme, SamplingSchemeRules } from './samplingScheme.data'
import * as SamplingSchemeApi from '@/api/qms/samplingScheme'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
@ -99,12 +112,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:sampling-scheme:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:sampling-scheme:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:sampling-scheme:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:sampling-scheme:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:sampling-scheme:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:sampling-scheme:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -117,21 +130,27 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
@ -141,22 +160,30 @@ const isShowMainButton = (row,val) => {
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi: 'qms:sampling-scheme:update'}),
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'qms:sampling-scheme:enable'}),
defaultButtons.mainListDisableBtn({ hide: isShowMainButton(row, ['TRUE']), hasPermi: 'qms:sampling-scheme:disable' }),
defaultButtons.mainListDeleteBtn({hasPermi:'qms:sampling-scheme:delete'}), //
defaultButtons.mainListEditBtn({ hasPermi: 'qms:sampling-scheme:update' }),
defaultButtons.mainListEnableBtn({
hide: isShowMainButton(row, ['FALSE']),
hasPermi: 'qms:sampling-scheme:enable'
}),
defaultButtons.mainListDisableBtn({
hide: isShowMainButton(row, ['TRUE']),
hasPermi: 'qms:sampling-scheme:disable'
}),
defaultButtons.mainListDeleteBtn({ hasPermi: 'qms:sampling-scheme:delete' }) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
} else if (val == 'disable') {
handleDisable(row.id)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}
}
@ -168,27 +195,33 @@ const openForm = (type: string, row?: any) => {
}
// form
const formsSuccess = async (formType,data) => {
var isHave =SamplingScheme.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
const formsSuccess = async (formType, data) => {
var isHave = SamplingScheme.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return;
return
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await SamplingSchemeApi.createSamplingScheme(data)
message.success(t('common.createSuccess'))
} else {
await SamplingSchemeApi.updateSamplingScheme(data)
message.success(t('common.updateSuccess'))
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await SamplingSchemeApi.createSamplingScheme(data)
message.success(t('common.createSuccess'))
} else {
await SamplingSchemeApi.updateSamplingScheme(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -275,5 +308,4 @@ onMounted(async () => {
getList()
importTemplateData.templateUrl = await SamplingSchemeApi.importTemplate()
})
</script>

114
src/views/qms/selectedProject/index.vue

@ -1,18 +1,22 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="SelectedProject.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="SelectedProject.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SelectedProject.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SelectedProject.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
@ -27,13 +31,13 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<template #code="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event, row)" />
</template>
</Table>
</ContentWrap>
@ -54,12 +58,17 @@
<Detail ref="detailRef" :isBasic="true" :allSchemas="SelectedProject.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/qms/selected-project/import" :importTemplateData="importTemplateData" @success="importSuccess" />
<ImportForm
ref="importFormRef"
url="/qms/selected-project/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
/>
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { SelectedProject,SelectedProjectRules } from './selectedProject.data'
import { SelectedProject, SelectedProjectRules } from './selectedProject.data'
import * as SelectedProjectApi from '@/api/qms/selectedProject'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
// import TableHead from '@/components/TableHead/src/TableHead.vue'
@ -99,12 +108,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:selectedProject:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:selectedProject:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:selectedProject:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:selectedProject:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:selectedProject:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:selectedProject:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -117,31 +126,39 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
// -
const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'qms:selectedProject:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'qms:selectedProject:delete'}), //
defaultButtons.mainListEditBtn({ hasPermi: 'qms:selectedProject:update' }), //
defaultButtons.mainListDeleteBtn({ hasPermi: 'qms:selectedProject:delete' }) //
]
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
openForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}
}
@ -153,27 +170,33 @@ const openForm = (type: string, row?: any) => {
}
// form
const formsSuccess = async (formType,data) => {
var isHave =SelectedProject.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
const formsSuccess = async (formType, data) => {
var isHave = SelectedProject.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return;
return
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await SelectedProjectApi.createSelectedProject(data)
message.success(t('common.createSuccess'))
} else {
await SelectedProjectApi.updateSelectedProject(data)
message.success(t('common.updateSuccess'))
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await SelectedProjectApi.createSelectedProject(data)
message.success(t('common.createSuccess'))
} else {
await SelectedProjectApi.updateSelectedProject(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -240,5 +263,4 @@ onMounted(async () => {
getList()
importTemplateData.templateUrl = await SelectedProjectApi.importTemplate()
})
</script>

231
src/views/qms/selectedSet/index.vue

@ -1,22 +1,27 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="SelectedSet.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search
:schema="SelectedSet.allSchemas.searchSchema"
@search="setSearchParams"
@reset="setSearchParams"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SelectedSet.allSchemas"
/>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SelectedSet.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
<Table
v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,13 +32,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<template #code="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase
:Butttondata="butttondata(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template>
</Table>
</ContentWrap>
@ -60,24 +68,24 @@
/>
<!-- 详情 -->
<DetailQmsCode
ref="detailRef"
:isBasic="false"
:allSchemas="SelectedSet.allSchemas"
:detailAllSchemas="SelectedProject.allSchemas"
<DetailQmsCode
ref="detailRef"
:isBasic="false"
:allSchemas="SelectedSet.allSchemas"
:detailAllSchemas="SelectedProject.allSchemas"
:detailAllSchemasRules="SelectedProjectRules"
:apiCreate="SelectedProjectApi.createSelectedProject"
:apiUpdate="SelectedProjectApi.updateSelectedProject"
:apiPage="SelectedProjectApi.getSelectedProjectPage"
:apiDelete="SelectedProjectApi.deleteSelectedProject"
:apiDelete="SelectedProjectApi.deleteSelectedProject"
:detailValidate="detailValidate"
@searchTableSuccessDetail="searchTableSuccessDetail"
@searchTableSuccessDetail="searchTableSuccessDetail"
:detailButtonIsShowEdit="checkPermi(['qms:selected-project:update'])"
:detailButtonIsShowAdd="checkPermi(['qms:selected-project:create'])"
:detailButtonIsShowDelete="checkPermi(['qms:selected-project:delete'])"
@detailOpenForm="detailOpenForm"
@detailBasicFormOnChange="detailBasiFormOnChange"
:detailButtonIsShowFilter="false"
:detailButtonIsShowFilter="false"
/>
<!-- 导入 -->
@ -94,16 +102,16 @@
<script setup lang="ts">
import download from '@/utils/download'
import { SelectedSet,SelectedSetRules } from './selectedSet.data'
import { SelectedSet, SelectedSetRules } from './selectedSet.data'
import * as SelectedSetApi from '@/api/qms/selectedSet'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import { SelectedProject,SelectedProjectRules } from '../selectedProject/selectedProject.data'
import { SelectedProject, SelectedProjectRules } from '../selectedProject/selectedProject.data'
import * as SelectedProjectApi from '@/api/qms/selectedProject'
import * as DictDataApi from '@/api/system/dict/dict.data'
import * as DictDataApi from '@/api/system/dict/dict.data'
import component from 'virtual:svg-icons-register'
import * as DictTypeApi from '@/api/system/dict/dict.type'
import { checkPermi } from '@/utils/permission'
import ImportForm from "../../../components/ImportForm/src/ImportForm.vue";
import ImportForm from '../../../components/ImportForm/src/ImportForm.vue'
// import TableHead from '@/components/TableHead/src/TableHead.vue'
// import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
// import Detail from '@/components/Detail/src/Detail.vue'
@ -145,12 +153,12 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'qms:selected-set:query'}), //
defaultButtons.defaultImportBtn({hasPermi:'qms:selected-set:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'qms:selected-set:export'}), //
defaultButtons.defaultAddBtn({ hasPermi: 'qms:selected-set:query' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'qms:selected-set:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'qms:selected-set:export' }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
defaultButtons.defaultSetBtn(null) //
// {
// label: '',
// name: 'zdy',
@ -163,21 +171,27 @@ const HeadButttondata = [
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
if (val == 'add') {
//
openForm('create')
} else if (val == 'import') { //
} else if (val == 'import') {
//
handleImport()
} else if (val == 'export') { //
} else if (val == 'export') {
//
handleExport()
} else if (val == 'refresh') { //
} else if (val == 'refresh') {
//
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val == 'filtrate') {
//
} else {
//
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
const isShowMainButton = (row, val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
@ -187,22 +201,30 @@ const isShowMainButton = (row,val) => {
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi: 'qms:selected-set:update'}),
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'qms:selected-set:enable'}),
defaultButtons.mainListDisableBtn({ hide: isShowMainButton(row, ['TRUE']), hasPermi: 'qms:selected-set:disable' }),
defaultButtons.mainListDeleteBtn({hasPermi:'qms:selected-set:delete'}), //
defaultButtons.mainListEditBtn({ hasPermi: 'qms:selected-set:update' }),
defaultButtons.mainListEnableBtn({
hide: isShowMainButton(row, ['FALSE']),
hasPermi: 'qms:selected-set:enable'
}),
defaultButtons.mainListDisableBtn({
hide: isShowMainButton(row, ['TRUE']),
hasPermi: 'qms:selected-set:disable'
}),
defaultButtons.mainListDeleteBtn({ hasPermi: 'qms:selected-set:delete' }) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'edit') {
//
editForm('update', row)
} else if (val == 'delete') { //
} else if (val == 'delete') {
//
handleDelete(row.id)
}else if (val == 'enable') {
} else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
} else if (val == 'disable') {
handleDisable(row.id)
}
}
@ -215,34 +237,40 @@ const openForm = (type: string, row?: any) => {
}
const editForm = async (type: string, row?: any) => {
tableData.value = []
SelectedProjectApi.getSelectedProjectNoPage({masterId:row.id}).then(res=>{
SelectedProjectApi.getSelectedProjectNoPage({ masterId: row.id }).then((res) => {
tableData.value = res
})
basicFormRef.value.open(type, row)
}
// form
const formsSuccess = async (formType,data) => {
var isHave =SelectedSet.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
const formsSuccess = async (formType, data) => {
var isHave = SelectedSet.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime'
})
if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间')
return;
return
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await SelectedSetApi.createSelectedSet(data)
message.success(t('common.createSuccess'))
} else {
await SelectedSetApi.updateSelectedSet(data)
message.success(t('common.updateSuccess'))
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null
try {
basicFormRef.value.formLoading = true
if (formType === 'create') {
await SelectedSetApi.createSelectedSet(data)
message.success(t('common.createSuccess'))
} else {
await SelectedSetApi.updateSelectedSet(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
basicFormRef.value.formLoading = false
getList()
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
@ -320,7 +348,6 @@ const searchFormClick = (searchData) => {
getList() //
}
const tableFormKeys = {}
SelectedProject.allSchemas.tableFormColumns.forEach((item) => {
tableFormKeys[item.field] = item.default ? item.default : ''
@ -335,21 +362,20 @@ const handleDeleteTable = (item, index) => {
tableData.value.splice(index, 1)
}
//
const submitForm = async (formType, data) => {
const emptyFlag = validateDetailEmpty(tableData.value);
if(!emptyFlag){
const emptyFlag = validateDetailEmpty(tableData.value)
if (!emptyFlag) {
message.alertWarning('明细不能为空')
basicFormRef.value.formLoading = false
return
}
if(!validateNotRepetition(tableData.value)){
if (!validateNotRepetition(tableData.value)) {
message.alertWarning('选定集字典及字典项不能重复')
basicFormRef.value.formLoading = false
return
}
data.selectedProjectDOList = tableData.value//
data.selectedProjectDOList = tableData.value //
try {
if (formType === 'create') {
await SelectedSetApi.createSelectedSet(data)
@ -366,35 +392,34 @@ const submitForm = async (formType, data) => {
}
}
const validateDetailEmpty = (data) => {
const codes = data.map(item => item.stage);
if(codes.length == 0){
return false;
const codes = data.map((item) => item.stage)
if (codes.length == 0) {
return false
}
return true;
return true
}
const validateNotRepetition = (data) => {
// dictionaryTypeAndCode
const codes = data.map(item => item.dictionaryValue);
const codes = data.map((item) => item.dictionaryValue)
// Set dictionaryTypeAndCode
const uniqueCodes = new Set(codes);
const uniqueCodes = new Set(codes)
// Set
if (codes.length > uniqueCodes.size) {
return false; // false
return false // false
}
return true; // true
};
return true // true
}
const detailValidate = (formType,data) => {
let tag = true;
existValue.value.forEach(item=>{
if(data.dictionaryValue == item.dictionaryValue){
message.warning("选定集字典项不能重复!")
tag = false;
const detailValidate = (formType, data) => {
let tag = true
existValue.value.forEach((item) => {
if (data.dictionaryValue == item.dictionaryValue) {
message.warning('选定集字典项不能重复!')
tag = false
}
})
return tag
@ -402,43 +427,35 @@ const detailValidate = (formType,data) => {
const detailOpenForm = (type, row, masterParmas) => {
let param = {
masterId : masterParmas.masterId
masterId: masterParmas.masterId
}
if(type == 'create'){
SelectedProjectApi.getSelectedProjectNoPage(param).then(res => {
if(res.length > 0){
if (type == 'create') {
SelectedProjectApi.getSelectedProjectNoPage(param).then((res) => {
if (res.length > 0) {
existValue.value = res
}
})
}else if('update'){
SelectedProjectApi.getSelectedProjectNoPage(param).then(res => {
if(res.length > 0){
existValue.value = res.filter(item=>{
} else if ('update') {
SelectedProjectApi.getSelectedProjectNoPage(param).then((res) => {
if (res.length > 0) {
existValue.value = res.filter((item) => {
return item?.id != row.id
})
}
})
}
}
const detailBasiFormOnChange = (field, val, detailFormRef) => {}
const detailBasiFormOnChange = (field,val,detailFormRef) => {
}
const formSelectChange = (a,b,c,d) => {
}
const formSelectChange = (a, b, c, d) => {}
/** 初始化 **/
onMounted(async () => {
  tableObject.params = {
    available: true
  }
tableObject.params = {
available: true
}
getList()
importTemplateData.templateUrl = await SelectedSetApi.importTemplate()
})
</script>

2
src/views/wms/basicDataManage/documentSetting/businesstype/businesstype.data.ts

@ -119,6 +119,7 @@ export const Businesstype = useCrudSchemas(reactive<CrudSchema[]>([
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
multiple: true,
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择库区代码', // 输入框占位文本
@ -147,6 +148,7 @@ export const Businesstype = useCrudSchemas(reactive<CrudSchema[]>([
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
multiple: true,
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择库区代码', // 输入框占位文本

8
src/views/wms/basicDataManage/documentSetting/businesstype/index.vue

@ -324,7 +324,13 @@ const onChange = (field, value)=>{
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
if(formField == 'outAreaCodes'||formField == 'inAreaCodes'){
//
setV[formField] = val.map(item=>(item[searchField])).join(',')
}else{
setV[formField] = val[0][searchField]
}
formRef.setValues(setV)
})
}

3
src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue

@ -765,7 +765,8 @@ const labelPrint = async (row) => {
item.width = item.table?.width || 150
})
tableObjectPrint.tableList.forEach(item=>{
item.fromBatch = item.batch
item.downItemCode = item.itemCode
item.toBatch = item.batch
})
searchTableRef.value.openData("标签信息",tableObjectPrint,{tableColumns},true)
}

44
src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/relegateRequestMain.data.ts

@ -742,7 +742,7 @@ export const RelegateRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
export const RelegateRequestDetailLabel = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '物料代码',
field: 'itemCode',
field: 'downItemCode',
sort: 'custom',
table: {
width: 150
@ -756,49 +756,9 @@ export const RelegateRequestDetailLabel = useCrudSchemas(reactive<CrudSchema[]>(
}
}
},
{
label: '物料名称',
field: 'itemName',
sort: 'custom',
table: {
width: 150
},
isTableForm: false,
isForm: false,
},
{
label: '物料描述1',
field: 'itemDesc1',
sort: 'custom',
table: {
width: 150
},
isTableForm: false,
isForm: false,
},
{
label: '物料描述2',
field: 'itemDesc2',
sort: 'custom',
table: {
width: 150
},
isTableForm: false,
isForm: false,
},
{
label: '项目代码',
field: 'projectCode',
sort: 'custom',
table: {
width: 150
},
isTableForm: false,
isForm: false,
},
{
label: '批次',
field: 'fromBatch',
field: 'toBatch',
sort: 'custom',
table: {
width: 150

1203
src/views/wms/deliversettlementManage/customerreturn/customerreturnJobMain/customerreturnJobMain.data.ts

File diff suppressed because it is too large

767
src/views/wms/deliversettlementManage/customerreturn/customerreturnRecordMain/customerreturnRecordMain.data.ts

@ -1,382 +1,437 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter,dateFormatter2 } from '@/utils/formatTime'
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
import * as InspectionQ1Api from '@/api/qms/inspectionQ1'
import { Q1 } from '@/views/qms/inspectionQ1/inspectionQ1.data'
/**
* @returns {Array} 退
*/
export const CustomerreturnRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isSearch: true
},
{
label: '状态',
field: 'status',
dictType: DICT_TYPE.REQUEST_STATUS,
dictClass: 'string',
isSearch: false,
isTable: false,
isDetail: false,
isForm: false,
sort: 'custom',
table: {
width: 150
},
},
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180
},
isTable: true,
isSearch: true
},
{
label: '任务单号',
field: 'jobNumber',
sort: 'custom',
table: {
width: 180
},
isTable: false,
},
{
label: '发货记录单号',
field: 'deliverRecordNumber',
sort: 'custom',
table: {
width: 180
},
},
{
label: '发货计划单号',
field: 'deliverPlanNumber',
sort: 'custom',
table: {
width: 180
},
isTable: true,
},
{
label: '客户代码',
field: 'customerCode',
sort: 'custom',
table: {
width: 150
},
isSearch: true
},
{
label: '客户月台代码',
field: 'customerDockCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '承运商',
field: 'carrierCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '运输方式',
field: 'transferMode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '车牌号',
field: 'vehiclePlateNumber',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
export const CustomerreturnRecordMain = useCrudSchemas(
reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isSearch: true
},
{
label: '状态',
field: 'status',
dictType: DICT_TYPE.REQUEST_STATUS,
dictClass: 'string',
isSearch: false,
isTable: false,
isDetail: false,
isForm: false,
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180
},
isTable: true,
isSearch: true
},
{
label: '任务单号',
field: 'jobNumber',
sort: 'custom',
table: {
width: 180
},
isTable: false
},
{
label: '发货记录单号',
field: 'deliverRecordNumber',
sort: 'custom',
table: {
width: 180
}
},
},
{
label: '执行时间',
field: 'executeTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '发货计划单号',
field: 'deliverPlanNumber',
sort: 'custom',
table: {
width: 180
},
isTable: true
},
{
label: 'Q1通知单号',
field: 'q1Number',
sort: 'custom',
isSearch: false,
isDetail: true,
table: {
width: 150
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
// multiple: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择Q1通知单号', // 输入框占位文本
searchField: 'number', // 查询弹窗赋值字段
searchTitle: 'Q1通知单号', // 查询弹窗标题
searchAllSchemas: Q1.allSchemas, // 查询弹窗所需类
searchPage: InspectionQ1Api.getQ1Page, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'status',
value: '0',
isMainValue: false
},
{
key: 'customerCode',
value: 'customerCode',
isMainValue: true
}
],
verificationParams: [
{
key: 'number',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
}
}
},
},
{
label: '生效日期',
field: 'activeDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
{
label: '客户代码',
field: 'customerCode',
sort: 'custom',
table: {
width: 150
},
isSearch: true
},
{
label: '客户月台代码',
field: 'customerDockCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '承运商',
field: 'carrierCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '运输方式',
field: 'transferMode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '车牌号',
field: 'vehiclePlateNumber',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '到仓库代码',
field: 'toWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
},
},
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '到库区类型范围',
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
},
},
{
label: '到库区代码范围',
field: 'toAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '到月台代码',
field: 'toDockCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '出库事务类型',
field: 'outTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '入库事务类型',
field: 'inTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '接口类型',
field: 'interfaceType',
dictType: DICT_TYPE.INTERFACE_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
{
label: '执行时间',
field: 'executeTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
isTable: false,
},
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
{
label: '生效日期',
field: 'activeDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x'
}
}
},
sort: 'custom',
table: {
width: 180
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '到仓库代码',
field: 'toWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
isTable: true,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '到库区类型范围',
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '创建者',
field: 'creator',
sort: 'custom',
table: {
width: 150
{
label: '到库区代码范围',
field: 'toAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '到月台代码',
field: 'toDockCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '出库事务类型',
field: 'outTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '入库事务类型',
field: 'inTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '接口类型',
field: 'interfaceType',
dictType: DICT_TYPE.INTERFACE_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
isTable: true,
},
// {
// label: '代码',
// field: 'code',
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '是否可用',
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isSearch: false,
isTable: false,
sort: 'custom',
table: {
width: 150
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: true,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
{
label: '创建者',
field: 'creator',
sort: 'custom',
table: {
width: 150
},
isTable: true
},
// {
// label: '代码',
// field: 'code',
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '是否可用',
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isSearch: false,
isTable: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
}
}
},
]))
])
)
//表单校验
export const CustomerreturnRecordMainRules = reactive({

1152
src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/customerreturnRequestMain.data.ts

File diff suppressed because it is too large

3
src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/index.vue

@ -200,6 +200,9 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
}
} else {
const setV = {}
if (formField == 'customerCode') {
setV['q1Number'] = ''
}
if(formField == 'deliverRecordNumber') {
setV['deliverRecordNumber'] = val[0]['number']
setV['deliverPlanNumber'] = val[0]['deliverPlanNumber']

960
src/views/wms/inventoryjobManage/scrap/scrapJobMain/scrapJobMain.data.ts

File diff suppressed because it is too large

556
src/views/wms/inventoryjobManage/scrap/scrapRecordMain/scrapRecordMain.data.ts

@ -1,288 +1,338 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter,dateFormatter2 } from '@/utils/formatTime'
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
import { TableColumn } from '@/types/table'
import * as InspectionQ3Api from '@/api/qms/inspectionQ3'
import { Q3 } from '@/views/qms/inspectionQ3/inspectionQ3.data'
/**
* @returns {Array}
*/
export const ScrapRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isSearch: true
},
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180
},
isSearch: true
},
{
label: '任务单号',
field: 'jobNumber',
sort: 'custom',
table: {
width: 180
},
isSearch: true
},
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
export const ScrapRecordMain = useCrudSchemas(
reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isSearch: true
},
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180
},
isSearch: true
},
{
label: '任务单号',
field: 'jobNumber',
sort: 'custom',
table: {
width: 180
},
isSearch: true
},
{
label: 'Q3通知单号',
field: 'q3Number',
sort: 'custom',
isSearch: false,
isDetail: true,
table: {
width: 150
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
// multiple: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择Q3通知单号', // 输入框占位文本
searchField: 'number', // 查询弹窗赋值字段
searchTitle: 'Q3通知单号', // 查询弹窗标题
searchAllSchemas: Q3.allSchemas, // 查询弹窗所需类
searchPage: InspectionQ3Api.getQ3Page, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'status',
value: '0',
isMainValue: false
}
],
verificationParams: [
{
key: 'number',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
}
}
},
},
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '执行时间',
field: 'executeTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '生效日期',
field: 'activeDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
{
label: '执行时间',
field: 'executeTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
},
},
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
{
label: '生效日期',
field: 'activeDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x'
}
}
},
},
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '出库事务类型',
field: 'outTransactionType',
sort: 'custom',
table: {
width: 150
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '入库事务类型',
field: 'inTransactionType',
sort: 'custom',
table: {
width: 150
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
{
label: '出库事务类型',
field: 'outTransactionType',
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
table: {
width: 150
{
label: '入库事务类型',
field: 'inTransactionType',
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '接口类型',
field: 'interfaceType',
dictType: DICT_TYPE.INTERFACE_TYPE,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
{
label: '接口类型',
field: 'interfaceType',
dictType: DICT_TYPE.INTERFACE_TYPE,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
}
},
sort: 'custom',
table: {
width: 180
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
}
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '创建者',
field: 'creator',
sort: 'custom',
isTable: false,
table: {
width: 150
{
label: '创建者',
field: 'creator',
sort: 'custom',
isTable: false,
table: {
width: 150
}
},
},
{
label: '最后更新时间',
field: 'updateTime',
sort: 'custom',
isDetail: true,
isForm: false,
isTable: false,
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
{
label: '最后更新时间',
field: 'updateTime',
sort: 'custom',
isDetail: true,
isForm: false,
isTable: false,
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
table: {
width: 180
{
label: '最后更新者',
field: 'updater',
isDetail: true,
isForm: false,
isTable: false,
table: {
width: 150
}
},
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
// {
// label: '代码',
// field: 'code',
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '是否可用',
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isSearch: false,
isTable: true,
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
}
}
},
{
label: '最后更新者',
field: 'updater',
isDetail: true,
isForm: false,
isTable: false,
table: {
width: 150
}
},
// {
// label: '代码',
// field: 'code',
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '是否可用',
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isSearch: false,
isTable: true,
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
},
]))
])
)
//表单校验
export const ScrapRecordMainRules = reactive({

762
src/views/wms/inventoryjobManage/scrap/scrapRequestMain/scrapRequestMain.data.ts

@ -1,398 +1,456 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
import * as getRequestsettingApi from '@/api/wms/requestsetting/index'
import * as getRequestsettingApi from '@/api/wms/requestsetting/index'
import * as BalanceApi from '@/api/wms/balance'
import * as BalanceApi from '@/api/wms/balance'
import { Balance } from '@/views/wms/inventoryManage/balance/balance.data'
import {Warehouse} from "@/views/wms/basicDataManage/factoryModeling/warehouse/warehouse.data";
import * as WarehouseApi from "@/api/wms/warehouse";
import { Warehouse } from '@/views/wms/basicDataManage/factoryModeling/warehouse/warehouse.data'
import * as WarehouseApi from '@/api/wms/warehouse'
import * as InspectionQ3Api from '@/api/qms/inspectionQ3'
import { Q3 } from '@/views/qms/inspectionQ3/inspectionQ3.data'
const { t } = useI18n() // 国际化
// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值
const queryParams = {
pageSize:10,
pageNo:1,
code:'ScrapRequest'
pageSize: 10,
pageNo: 1,
code: 'ScrapRequest'
}
const data = await getRequestsettingApi.getRequestsettingPage(queryParams)
const requestsettingData =data?.list[0]||{}
const data = await getRequestsettingApi.getRequestsettingPage(queryParams)
const requestsettingData = data?.list[0] || {}
// 获取当前操作人的部门
// 获取当前操作人的部门
import { useUserStore } from '@/store/modules/user'
import { TableColumn } from '@/types/table'
const userStore = useUserStore()
const userDept = userStore.userSelfInfo.dept
// id 转str 否则form回显匹配不到
userDept.id = userDept.id.toString()
const userDeptArray:any = [userDept]
// id 转str 否则form回显匹配不到
userDept.id = userDept.id.toString()
const userDeptArray: any = [userDept]
/**
* @returns {Array}
*/
export const ScrapRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isForm: false,
isSearch: true,
},
{
label: '状态',
field: 'status',
dictType: DICT_TYPE.REQUEST_STATUS,
dictClass: 'string',
isSearch: true,
isForm: false,
isTable: true,
sort: 'custom',
table: {
width: 150
},
form: {
value: '1',
componentProps: {
disabled: true
export const ScrapRequestMain = useCrudSchemas(
reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isForm: false,
isSearch: true
},
{
label: 'Q3通知单号',
field: 'q3Number',
sort: 'custom',
isSearch: false,
isDetail: true,
table: {
width: 150
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
// multiple: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择Q3通知单号', // 输入框占位文本
searchField: 'number', // 查询弹窗赋值字段
searchTitle: 'Q3通知单号', // 查询弹窗标题
searchAllSchemas: Q3.allSchemas, // 查询弹窗所需类
searchPage: InspectionQ3Api.getQ3Page, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'status',
value: '0',
isMainValue: false
}
],
verificationParams: [
{
key: 'number',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
}
}
}
},
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '状态',
field: 'status',
dictType: DICT_TYPE.REQUEST_STATUS,
dictClass: 'string',
isSearch: true,
isForm: false,
isTable: true,
sort: 'custom',
table: {
width: 150
},
form: {
value: '1',
componentProps: {
disabled: true
}
}
},
isForm: false,
},
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
},
isForm: false
},
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isSearch: true,
tableForm: {
enterSearch: true,
isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择仓库代码',
searchField: 'code',
searchTitle: '仓库信息',
searchAllSchemas: Warehouse.allSchemas,
searchPage: WarehouseApi.getWarehousePage,
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
}],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isSearch: true,
tableForm: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择仓库代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '仓库信息', // 查询弹窗标题
searchAllSchemas: Warehouse.allSchemas, // 查询弹窗所需类
searchPage: WarehouseApi.getWarehousePage, // 查询弹窗所需分页方法
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
}],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
}
}
},
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
},
isSearch: true,
isForm: false,
},
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
},
isForm: false,
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
form: {
value: 'Scrap',
componentProps: {
disabled: true
isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择仓库代码',
searchField: 'code',
searchTitle: '仓库信息',
searchAllSchemas: Warehouse.allSchemas,
searchPage: WarehouseApi.getWarehousePage,
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
verificationParams: [
{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择仓库代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '仓库信息', // 查询弹窗标题
searchAllSchemas: Warehouse.allSchemas, // 查询弹窗所需类
searchPage: WarehouseApi.getWarehousePage, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
verificationParams: [
{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
}
}
},
isForm: false,
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
isForm: false,
isTable:false,
table: {
width: 150
},
formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
return userDeptArray.find((account) => account.id == cellValue)?.name
},
form: {
value: userDept.id,
component: 'Select',
api: () => userDeptArray,
componentProps: {
disabled: true,
optionsAlias: {
labelField: 'name',
valueField: 'id'
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
},
isSearch: true,
isForm: false
},
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
},
isForm: false
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
form: {
value: 'Scrap',
componentProps: {
disabled: true
}
},
isForm: false
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
isForm: false,
isTable: false,
table: {
width: 150
},
formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
return userDeptArray.find((account) => account.id == cellValue)?.name
},
form: {
value: userDept.id,
component: 'Select',
api: () => userDeptArray,
componentProps: {
disabled: true,
optionsAlias: {
labelField: 'name',
valueField: 'id'
}
}
}
}
},
{
label: '备注',
field: 'remark',
sort: 'custom',
isTable:false,
table: {
width: 150
},
},
{
label: '自动提交',
field: 'autoCommit',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoCommit,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disable: true
{
label: '备注',
field: 'remark',
sort: 'custom',
isTable: false,
table: {
width: 150
}
}
},
{
label: '自动通过',
field: 'autoAgree',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoAgree,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disable: true
{
label: '自动提交',
field: 'autoCommit',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoCommit,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disable: true
}
}
}
},
{
label: '自动执行',
field: 'autoExecute',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoExecute,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disable: true
{
label: '自动通过',
field: 'autoAgree',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoAgree,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disable: true
}
}
}
},
{
label: '直接生成记录',
field: 'directCreateRecord',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isForm:false,
isTable: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.directCreateRecord,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disable: true
{
label: '自动执行',
field: 'autoExecute',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoExecute,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disable: true
}
}
}
},
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '直接生成记录',
field: 'directCreateRecord',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isForm: false,
isTable: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.directCreateRecord,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disable: true
}
}
},
isTable:false,
isForm: false,
},
{
label: '创建者',
field: 'creator',
sort: 'custom',
table: {
width: 150
},
isTable:false,
isForm: false,
},
{
label: '最后更新时间',
field: 'updateTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
},
isTable: false,
isForm: false
},
{
label: '创建者',
field: 'creator',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false
},
{
label: '最后更新时间',
field: 'updateTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
},
isTable: false,
isForm: false
},
{
label: '最后更新者',
field: 'updater',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false
},
{
label: '操作',
field: 'action',
isDetail: false,
isForm: false,
table: {
width: 300,
fixed: 'right'
}
},
isTable:false,
isForm: false,
},
{
label: '最后更新者',
field: 'updater',
sort: 'custom',
table: {
width: 150
},
isTable:false,
isForm: false,
},
{
label: '操作',
field: 'action',
isDetail: false,
isForm: false,
table: {
width: 300,
fixed: 'right'
},
}
]))
}
])
)
//表单校验
export const ScrapRequestMainRules = reactive({

20
src/views/wms/issueManage/productionreturn/productionreturnRequestMain/productionreturnRequestMain.data.ts

@ -279,15 +279,15 @@ export const ProductionreturnRequestMain = useCrudSchemas(reactive<CrudSchema[]>
isTable: false,
isForm: false,
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
// {
// label: '备注',
// field: 'remark',
// sort: 'custom',
// table: {
// width: 150
// },
// isTable: false
// },
{
label: '业务类型',
field: 'businessType',
@ -599,7 +599,7 @@ export const ProductionreturnRequestDetail = useCrudSchemas(reactive<CrudSchema[
isMainValue: true
}],
}
},
tableForm:{

6
src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/index.vue

@ -197,9 +197,9 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
if(item.field == 'qty' && Number(val[0]['qty'])>item.tableForm.min) {
item.tableForm.max = Number(val[0]['qty'])
}
if(item.field == 'batch') {
item.tableForm.disabled = false
}
// if(item.field == 'batch') {
// item.tableForm.disabled = false
// }
})
}
} else if(formField == 'workStationCode') {

1046
src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/productionreturnRequestMainNo.data.ts

File diff suppressed because it is too large

644
src/views/wms/issueManage/productionscrap/productionscrapRecordMain/productionscrapRecordMain.data.ts

@ -1,321 +1,371 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter,dateFormatter2 } from '@/utils/formatTime'
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
import * as InspectionQ3Api from '@/api/qms/inspectionQ3'
import { Q3 } from '@/views/qms/inspectionQ3/inspectionQ3.data'
/**
* @returns {Array} 退
*/
export const ProductionscrapRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isSearch: true
},
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180
},
isSearch: true
},
{
label: '车间代码',
field: 'workshopCode',
sort: 'custom',
table: {
width: 150
},
},
{
label: '出库事务类型',
field: 'outTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '入库事务类型',
field: 'inTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '执行时间',
field: 'executeTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
export const ProductionscrapRecordMain = useCrudSchemas(
reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isSearch: true
},
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180
},
isSearch: true
},
{
label: 'Q3通知单号',
field: 'q3Number',
sort: 'custom',
isSearch: false,
isDetail: true,
table: {
width: 150
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
// multiple: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择Q3通知单号', // 输入框占位文本
searchField: 'number', // 查询弹窗赋值字段
searchTitle: 'Q3通知单号', // 查询弹窗标题
searchAllSchemas: Q3.allSchemas, // 查询弹窗所需类
searchPage: InspectionQ3Api.getQ3Page, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'status',
value: '0',
isMainValue: false
}
],
verificationParams: [
{
key: 'number',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
}
}
},
},
{
label: '生效日期',
field: 'activeDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
{
label: '车间代码',
field: 'workshopCode',
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '出库事务类型',
field: 'outTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '入库事务类型',
field: 'inTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '执行时间',
field: 'executeTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '生效日期',
field: 'activeDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x'
}
}
},
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '接口类型',
field: 'interfaceType',
dictType: DICT_TYPE.INTERFACE_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
},
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
// {
// label: '创建者',
// field: 'creator',
// sort: 'custom',
// table: {
// width: 150
// },
// isTable: true,
// },
// {
// label: '创建时间',
// field: 'createTime',
// formatter: dateFormatter,
// detail: {
// dateFormat: 'YYYY-MM-DD HH:mm:ss'
// },
// sort: 'custom',
// table: {
// width: 180
// },
// isTable: true,
// form: {
// component: 'DatePicker',
// componentProps: {
// type: 'datetime',
// dateFormat: 'YYYY-MM-DD HH:mm:ss',
// valueFormat: 'x',
// }
// },
// },
{
label: '最后更新时间',
field: 'updateTime',
sort: 'custom',
isDetail: true,
isForm: false,
isTable: false,
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
}
},
{
label: '最后更新者',
field: 'updater',
isDetail: true,
isForm: false,
isTable: false,
table: {
width: 150
}
},
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '接口类型',
field: 'interfaceType',
dictType: DICT_TYPE.INTERFACE_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
isTable: false,
},
{
label: '到仓库代码',
field: 'toWarehouseCode',
sort: 'custom',
table: {
width: 150
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
// {
// label: '创建者',
// field: 'creator',
// sort: 'custom',
// table: {
// width: 150
// },
// isTable: true,
// },
// {
// label: '创建时间',
// field: 'createTime',
// formatter: dateFormatter,
// detail: {
// dateFormat: 'YYYY-MM-DD HH:mm:ss'
// },
// sort: 'custom',
// table: {
// width: 180
// },
// isTable: true,
// form: {
// component: 'DatePicker',
// componentProps: {
// type: 'datetime',
// dateFormat: 'YYYY-MM-DD HH:mm:ss',
// valueFormat: 'x',
// }
// },
// },
{
label: '最后更新时间',
field: 'updateTime',
sort: 'custom',
isDetail: true,
isForm: false,
isTable: false,
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
isTable: false,
},
{
label: '到库区类型范围',
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
{
label: '最后更新者',
field: 'updater',
isDetail: true,
isForm: false,
isTable: false,
table: {
width: 150
}
},
},
{
label: '到库区代码范围',
field: 'toAreaCodes',
sort: 'custom',
table: {
width: 150
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
isTable: false,
},
{
label: '是否可用',
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isSearch: true,
isTable: false,
sort: 'custom',
table: {
width: 150
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '到仓库代码',
field: 'toWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '到库区类型范围',
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
{
label: '到库区代码范围',
field: 'toAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '是否可用',
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isSearch: true,
isTable: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
}
}
},
]))
])
)
//表单校验
export const ProductionscrapRecordMainRules = reactive({
@ -552,6 +602,7 @@ export const ProductionscrapRecordDetail = useCrudSchemas(reactive<CrudSchema[]>
table: {
width: 150
},
isTable:false,
hiddenInMain: true,
},
{
@ -561,6 +612,7 @@ export const ProductionscrapRecordDetail = useCrudSchemas(reactive<CrudSchema[]>
table: {
width: 150
},
isTable:false,
hiddenInMain: true,
},
{
@ -570,6 +622,7 @@ export const ProductionscrapRecordDetail = useCrudSchemas(reactive<CrudSchema[]>
table: {
width: 150
},
isTable:false,
hiddenInMain: true,
},
{
@ -579,6 +632,7 @@ export const ProductionscrapRecordDetail = useCrudSchemas(reactive<CrudSchema[]>
table: {
width: 180
},
isTable:false,
hiddenInMain: true,
},
{

916
src/views/wms/issueManage/productionscrap/productionscrapRequestMain/productionscrapRequestMain.data.ts

@ -1,486 +1,548 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
import * as getRequestsettingApi from '@/api/wms/requestsetting/index'
import * as getRequestsettingApi from '@/api/wms/requestsetting/index'
import * as WorkshopApi from '@/api/wms/workshop'
import * as WorkshopApi from '@/api/wms/workshop'
import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data'
import * as ProductionlineApi from '@/api/wms/productionline'
import * as ProductionlineApi from '@/api/wms/productionline'
import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data'
import * as WorkstationApi from '@/api/wms/workstation'
import * as WorkstationApi from '@/api/wms/workstation'
import { Workstation } from '@/views/wms/basicDataManage/factoryModeling/workstation/workstation.data'
import * as BalanceApi from '@/api/wms/balance'
import * as BalanceApi from '@/api/wms/balance'
import { Balance } from '@/views/wms/inventoryManage/balance/balance.data'
import * as ItempackagingApi from '@/api/wms/itempackage'
import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data'
import * as SupplieritemApi from '@/api/wms/supplieritem'
import * as SupplieritemApi from '@/api/wms/supplieritem'
import { Supplieritem } from '@/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data'
import { useUserStore } from '@/store/modules/user'
import { TableColumn } from '@/types/table'
import * as InspectionQ3Api from '@/api/qms/inspectionQ3'
import { Q3 } from '@/views/qms/inspectionQ3/inspectionQ3.data'
const { t } = useI18n() // 国际化
// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值
const queryParams = {
pageSize:10,
pageNo:1,
code:'MaterialReturnRequest'
pageSize: 10,
pageNo: 1,
code: 'MaterialReturnRequest'
}
const data = await getRequestsettingApi.getRequestsettingPage(queryParams)
const requestsettingData =data?.list[0]||{}
const data = await getRequestsettingApi.getRequestsettingPage(queryParams)
const requestsettingData = data?.list[0] || {}
//console.log(34, requestsettingData)
const userStore = useUserStore()
const userDept = userStore.userSelfInfo.dept
// id 转str 否则form回显匹配不到
userDept.id = userDept.id.toString()
const userDeptArray:any = [userDept]
//console.log(34, requestsettingData)
const userStore = useUserStore()
const userDept = userStore.userSelfInfo.dept
// id 转str 否则form回显匹配不到
userDept.id = userDept.id.toString()
const userDeptArray: any = [userDept]
/**
* @returns {Array} 退
*/
export const ProductionscrapRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isForm: false,
isSearch: true,
},
{
label: '状态',
field: 'status',
dictType: DICT_TYPE.REQUEST_STATUS,
dictClass: 'string',
isSearch: true,
isTable: true,
isForm:false,
sort: 'custom',
table: {
width: 150
},
form: {
value: '1',
componentProps: {
disabled: true
export const ProductionscrapRequestMain = useCrudSchemas(
reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isForm: false,
isSearch: true
},
{
label: 'Q3通知单号',
field: 'q3Number',
sort: 'custom',
isSearch: false,
isDetail: true,
table: {
width: 150
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
// multiple: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择Q3通知单号', // 输入框占位文本
searchField: 'number', // 查询弹窗赋值字段
searchTitle: 'Q3通知单号', // 查询弹窗标题
searchAllSchemas: Q3.allSchemas, // 查询弹窗所需类
searchPage: InspectionQ3Api.getQ3Page, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'status',
value: '0',
isMainValue: false
}
],
verificationParams: [
{
key: 'number',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
}
}
}
},
{
label: '车间',
field: 'workshopCode',
sort: 'custom',
table: {
width: 150
},
isSearch: true,
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择车间代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '车间信息', // 查询弹窗标题
searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类
searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法
searchCondition:[{
key: 'available',
value: 'TRUE',
isMainValue: false
}],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
{
label: '状态',
field: 'status',
dictType: DICT_TYPE.REQUEST_STATUS,
dictClass: 'string',
isSearch: true,
isTable: true,
isForm: false,
sort: 'custom',
table: {
width: 150
},
form: {
value: '1',
componentProps: {
disabled: true
}
}
},
},
{
label: '生产线代码',
field: 'productionLineCode',
sort: 'custom',
table: {
width: 150
{
label: '车间',
field: 'workshopCode',
sort: 'custom',
table: {
width: 150
},
isSearch: true,
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择车间代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '车间信息', // 查询弹窗标题
searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类
searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
verificationParams: [
{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
}
}
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
{
label: '生产线代码',
field: 'productionLineCode',
sort: 'custom',
table: {
width: 150
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '生产线信息', // 查询弹窗标题
searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'workshopCode',
value: 'workshopCode',
message: '请选择车间信息!', // 当前置条件为空时 弹出信息提示
isMainValue: true
}
],
verificationParams: [
{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
}
},
tableForm: {
isInpuFocusShow: true,
searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '生产线信息', // 查询弹窗标题
searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法
searchCondition:[{
key: 'available',
value: 'TRUE',
isMainValue: false
},{
key: 'workshopCode',
value: 'workshopCode',
message: '请选择车间信息!', // 当前置条件为空时 弹出信息提示
isMainValue: true
}],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'workshopCode',
value: 'workshopCode',
message: '请选择车间信息!', // 当前置条件为空时 弹出信息提示
isMainValue: true
}
]
}
},
tableForm:{
isInpuFocusShow: true,
searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '生产线信息', // 查询弹窗标题
searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法
searchCondition:[{
key: 'available',
value: 'TRUE',
isMainValue: false
},{
key: 'workshopCode',
value: 'workshopCode',
message: '请选择车间信息!', // 当前置条件为空时 弹出信息提示
isMainValue: true
}]
},
},
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
},
isForm: false
},
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
isForm: false,
},
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
},
isForm: false
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '到库区类型范围',
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isSearch: true,
isTable: false,
sort: 'custom',
table: {
width: 150
},
isForm: false
},
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false
},
{
label: '到库区代码范围',
field: 'toAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false
},
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false
},
{
label: '到仓库代码',
field: 'toWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
isForm: false,
table: {
width: 150
},
isTable: false,
formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
return userDeptArray.find((account) => account.id == cellValue)?.name
},
form: {
value: userDept.id,
component: 'Select',
api: () => userDeptArray,
componentProps: {
disabled: true,
optionsAlias: {
labelField: 'name',
valueField: 'id'
}
}
}
},
},
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
},
isForm: false,
},
{
label: '到库区类型范围',
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isSearch: true,
isTable: false,
sort: 'custom',
table: {
width: 150
},
isForm: false,
},
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false,
},
{
label: '到库区代码范围',
field: 'toAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false,
},
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false,
},
{
label: '到仓库代码',
field: 'toWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false,
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false,
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
isForm:false,
table: {
width: 150
},
isTable: false,
formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
return userDeptArray.find((account) => account.id == cellValue)?.name
},
form: {
value: userDept.id,
component: 'Select',
api: () => userDeptArray,
componentProps: {
disabled: true,
optionsAlias: {
labelField: 'name',
valueField: 'id'
{
label: '自动提交',
field: 'autoCommit',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoCommit,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disabled: true
}
}
}
},
{
label: '自动提交',
field: 'autoCommit',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm:false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoCommit,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disabled: true,
{
label: '自动通过',
field: 'autoAgree',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoAgree,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disabled: true
}
}
}
},
{
label: '自动通过',
field: 'autoAgree',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm:false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoAgree,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disabled: true,
{
label: '自动执行',
field: 'autoExecute',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoExecute,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disabled: true
}
}
}
},
{
label: '自动执行',
field: 'autoExecute',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
isForm:false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.autoExecute,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disabled: true,
{
label: '直接生成记录',
field: 'directCreateRecord',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isForm: false,
isTable: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.directCreateRecord,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disabled: true
}
}
}
},
{
label: '直接生成记录',
field: 'directCreateRecord',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isForm: false,
isTable: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: requestsettingData.directCreateRecord,
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE',
disabled: true,
}
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
},
isTable: false,
isForm: false
},
{
label: '创建者',
field: 'creator',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false
},
{
label: '最后更新时间',
field: 'updateTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
},
isForm: false
},
{
label: '最后更新者',
field: 'updater',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false
},
{
label: '操作',
field: 'action',
isDetail: false,
isForm: false,
table: {
width: 300,
fixed: 'right'
},
isTable: false
}
},
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
}
},
isTable: false,
isForm: false
},
{
label: '创建者',
field: 'creator',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false
},
{
label: '最后更新时间',
field: 'updateTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
}
},
isForm: false
},
{
label: '最后更新者',
field: 'updater',
sort: 'custom',
table: {
width: 150
},
isTable: false,
isForm: false
},
{
label: '操作',
field: 'action',
isDetail: false,
isForm: false,
table: {
width: 300,
fixed: 'right'
},
isTable: false,
}
]))
])
)
//表单校验
export const ProductionscrapRequestMainRules = reactive({

6
src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRequestMain/index.vue

@ -43,7 +43,7 @@
<BasicForm
ref="formRef"
:isOpenSearchTable="true"
fieldTableColumn="productionLineCode"
fieldTableColumn="workStationCode"
@success="getList"
:rules="ProductreceiptRequestMainRules"
:formAllSchemas="ProductreceiptRequestMain.allSchemas"
@ -220,7 +220,7 @@ const searchTableSuccess = async (formField, searchField, val, formRef, type, ro
row['bomVersion'] = res.list[0].version
}
})
}else if(formField == 'productionLineCode'){
}else if(formField == 'workStationCode'){
//
val.forEach(item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
@ -627,7 +627,7 @@ const handleImport = () => {
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: '制品收货申请主导入模版.xlsx'
templateTitle: '隔离报工申请导入模版.xlsx'
})
//

72
src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRequestMain/productreceiptscrapRequestMain.data.ts

@ -134,6 +134,74 @@ export const ProductreceiptRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
{
label: '生产线代码',
field: 'productionLineCode',
sort: 'custom',
table: {
width: 150
},
tableForm:{
disabled:true,
multiple: true,
// isInpuFocusShow: true,
searchListPlaceholder: '请选择生产线代码',
searchField: 'code',
searchTitle: '生产线信息',
searchAllSchemas: Productionline.allSchemas,
searchPage: ProductionlineApi.getProductionlinePage,
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
},{
key: 'workshopCode',
value: 'workshopCode',
message: '请填写车间代码!',
isMainValue: true
}],
verificationPage: ProductionlineApi.getProductionlineByCodes, // 校验数去焦点输入是否正确的方法
isShowTableFormSearch: true,
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch:true,
isSearchList: true,
searchListPlaceholder: '请选择生产线代码',
searchField: 'code',
searchTitle: '生产线信息',
searchAllSchemas: Productionline.allSchemas,
searchPage: ProductionlineApi.getProductionlinePage,
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
},{
key: 'workshopCode',
value: 'workshopCode',
message: '请填写车间代码!',
isMainValue: true
}],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
}
}
},
{
label: '班组',
field: 'team',
@ -521,6 +589,9 @@ export const ProductreceiptRequestMainRules = reactive({
// shift: [
// { required: true, message: '请选择班次代码', trigger: 'change' }
// ],
productionLineCode: [
{ required: true, message: '请选择生产线代码', trigger: 'change' }
],
dueTime: [
{ required: true, message: '请选择截止时间', trigger: 'blur' }
],
@ -552,6 +623,7 @@ export const ProductreceiptRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
table: {
width: 150
},
isTableForm: false,
tableForm:{
disabled:true,
multiple: true,

7
src/views/wms/productionManage/productredress/productredressJobMain/productredressJobMain.data.ts

@ -240,6 +240,8 @@ export const ProductredressJobMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
sort: 'custom',
isForm:false,
isTable:false,
@ -247,6 +249,7 @@ export const ProductredressJobMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '到库区类型范围',
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
sort: 'custom',
isForm:false,
isTable:false,
@ -358,6 +361,8 @@ export const ProductredressJobMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '入库库存状态范围',
field: 'inInventoryStatuses',
dictType: DICT_TYPE.INVENTORY_STATUS,
dictClass: 'string',
sort: 'custom',
isForm:false,
isTable:false,
@ -365,6 +370,8 @@ export const ProductredressJobMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '出库库存状态范围',
field: 'outInventoryStatuses',
dictType: DICT_TYPE.INVENTORY_STATUS,
dictClass: 'string',
sort: 'custom',
isForm:false,
isTable:false,

3
src/views/wms/productionManage/productredress/productredressRecordMain/productredressRecordMain.data.ts

@ -143,6 +143,8 @@ export const ProductredressRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '是否可用',
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
sort: 'custom',
isForm:false,
isTable:false
@ -249,6 +251,7 @@ export const ProductredressRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '到库区类型范围',
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
sort: 'custom',
table: {
width: 150

944
src/views/wms/productionManage/productscrap/productscrapJobMain/productscrapJobMain.data.ts

File diff suppressed because it is too large

681
src/views/wms/productionManage/productscrap/productscrapRecordMain/productscrapRecordMain.data.ts

@ -1,348 +1,397 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter,dateFormatter2 } from '@/utils/formatTime'
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
import * as InspectionQ3Api from '@/api/qms/inspectionQ3'
import { Q3 } from '@/views/qms/inspectionQ3/inspectionQ3.data'
/**
* @returns {Array}
*/
export const ProductscrapRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isSearch: true
},
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180
},
isSearch: true
},
{
label: '状态',
field: 'status',
dictType: DICT_TYPE.REQUEST_STATUS,
dictClass: 'string',
isForm:false,
isTable: false,
sort: 'custom',
table: {
width: 150
},
},
{
label: '车间',
field: 'workshopCode',
sort: 'custom',
table: {
width: 150
}
},
{
label: '生产线',
field: 'productionLineCode',
sort: 'custom',
table: {
width: 150
}
},
{
label: '班组',
field: 'team',
sort: 'custom',
table: {
width: 150
}
},
{
label: '班次',
field: 'shift',
sort: 'custom',
table: {
width: 150
}
},
{
label: '任务单号',
field: 'jobNumber',
sort: 'custom',
table: {
width: 180,
show:false
},
isTable: false,
},
{
label: '出库事务类型',
field: 'outTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '入库事务类型',
field: 'inTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '执行时间',
field: 'executeTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
export const ProductscrapRecordMain = useCrudSchemas(
reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isSearch: true
},
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180
},
isSearch: true
},
{
label: 'Q3通知单号',
field: 'q3Number',
sort: 'custom',
isSearch: false,
isDetail: true,
table: {
width: 150
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
// multiple: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择Q3通知单号', // 输入框占位文本
searchField: 'number', // 查询弹窗赋值字段
searchTitle: 'Q3通知单号', // 查询弹窗标题
searchAllSchemas: Q3.allSchemas, // 查询弹窗所需类
searchPage: InspectionQ3Api.getQ3Page, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'status',
value: '0',
isMainValue: false
}
],
verificationParams: [
{
key: 'number',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
}
}
},
},
{
label: '生效日期',
field: 'activeDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
{
label: '状态',
field: 'status',
dictType: DICT_TYPE.REQUEST_STATUS,
dictClass: 'string',
isForm: false,
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '车间',
field: 'workshopCode',
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '生产线',
field: 'productionLineCode',
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '接口类型',
field: 'interfaceType',
dictType: DICT_TYPE.INTERFACE_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
},
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
{
label: '班组',
field: 'team',
sort: 'custom',
table: {
width: 150
}
},
isTable: false,
},
{
label: '创建者',
field: 'creator',
sort: 'custom',
table: {
width: 150
{
label: '班次',
field: 'shift',
sort: 'custom',
table: {
width: 150
}
},
isTable: true,
},
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
{
label: '任务单号',
field: 'jobNumber',
sort: 'custom',
table: {
width: 180,
show: false
},
isTable: false
},
{
label: '出库事务类型',
field: 'outTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '入库事务类型',
field: 'inTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '执行时间',
field: 'executeTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
sort: 'custom',
table: {
width: 180
{
label: '生效日期',
field: 'activeDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x'
}
}
},
isTable: true,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '最后更新时间',
field: 'updateTime',
sort: 'custom',
isDetail: true,
isForm: false,
isTable: false,
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
table: {
width: 180
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '接口类型',
field: 'interfaceType',
dictType: DICT_TYPE.INTERFACE_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
form: {
component: 'DatePicker',
componentProps: {
style: {width:'100%'},
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '创建者',
field: 'creator',
sort: 'custom',
table: {
width: 150
},
isTable: true
},
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: true,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
}
},
{
label: '最后更新者',
field: 'updater',
isDetail: true,
isForm: false,
isTable: false,
table: {
width: 150
}
},
// {
// label: '代码',
// field: 'code',
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150,
show: false
},
isTable: false,
},
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
{
label: '最后更新时间',
field: 'updateTime',
sort: 'custom',
isDetail: true,
isForm: false,
isTable: false,
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
{
label: '最后更新者',
field: 'updater',
isDetail: true,
isForm: false,
isTable: false,
table: {
width: 150
}
},
isTable: false,
},
{
label: '是否可用',
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isSearch: true,
isTable: false,
sort: 'custom',
table: {
width: 150
// {
// label: '代码',
// field: 'code',
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150,
show: false
},
isTable: false
},
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '是否可用',
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isSearch: true,
isTable: false,
sort: 'custom',
table: {
width: 150
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
}
}
},
]))
])
)
//表单校验
export const ProductscrapRecordMainRules = reactive({

31
src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue

@ -97,6 +97,8 @@
@searchTableSuccess="searchTableBomSuccess"
:footButttondata="footButttondata"
@footButtonClick="buttonBaseClickBom"
@inputNumberChange="inputNumberChange"
/>
<!-- 导入 -->
@ -229,13 +231,18 @@ const banchBomPage = async (fromLocationCode,item) => {
}
// tableform
const buttonOperationClick = async (row, label, index)=> {
const buttonOperationClick = async (row, label, index,isSave = false)=> {
console.log('buttonOperationClick',row, label, index)
if (row.itemCode == '') {
message.warning('请选择物料代码!')
if(!isSave){
message.warning('请选择物料代码!')
}
return
}
if(row.qty <= 0){
message.warning('数量需要大于0!')
if(!isSave){
message.warning('数量需要大于0!')
}
return
}
detatableDataBom.params.itemCode = row.itemCode
@ -244,7 +251,7 @@ const buttonOperationClick = async (row, label, index)=> {
bomModelVisible.value = true
await getDetailListBom()
console.log(row.fromLocationCode);
detatableDataBom.tableList.forEach(async item => {
detatableDataBom.tableList.forEach(async (item) => {
console.log(333,item)
ProdcutscrapBomScrap.allSchemas.tableFormColumns.map((bomItem) => {
if (bomItem.field == 'batch') {
@ -277,7 +284,11 @@ const buttonOperationClick = async (row, label, index)=> {
const obj = await banchBomPage(row.fromLocationCode, item)
item.batch = obj.batch
})
detailBomRef.value.open('create', row, null,'viewDetail')//
if(isSave){
buttonBaseClickBom('save')
}else{
detailBomRef.value.open('create', row, null,'viewDetail')//
}
}
//
@ -358,10 +369,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
console.log(res)
if(res?.list?.length>0){
row['bomVersion'] = res.list[0].version
buttonOperationClick(row,'Bom',tableData.value.indexOf(row),true)
}
})
}else if(formField == 'bomVersion'){
row['bomVersion'] = val[0]['version']
buttonOperationClick(row,'Bom',tableData.value.indexOf(row),true)
} else {
row[formField] = val[0][searchField]
}
@ -699,12 +713,14 @@ const submitForm = async (formType, submitData) => {
if(data.masterId){
data.id = data.masterId
}
console.log('tableData.value',tableData.value)
data.subList = tableData.value //
// bom
let childListRs = true
//
tableData.value.forEach((item) => {
if (!item.childList) {
if (!item.childList||item.childList.length==0) {
childListRs = false
}
item.productionLineCode = data.productionLineCode
@ -763,6 +779,9 @@ const inputNumberChange = (field, index, row, val) => {
if(field == 'qty' || field == 'singlePrice'){
row.amount = row.qty * row.singlePrice
}
if(field == 'qty'){
buttonOperationClick(row,'Bom',index,true)
}
}
const qtyOnChange = (field,val) =>{

1057
src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts

File diff suppressed because it is too large

1157
src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/purchasereturnJobMain.data.ts

File diff suppressed because it is too large

780
src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/purchasereturnRecordMain.data.ts

@ -1,387 +1,439 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter,dateFormatter2 } from '@/utils/formatTime'
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
import * as InspectionQ2Api from '@/api/qms/inspectionQ2'
import { Q2 } from '@/views/qms/inspectionQ2/inspectionQ2.data'
/**
* @returns {Array} 退
*/
export const PurchasereturnRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
sortTableDefault: 1012,
sortSearchDefault:1,
isSearch: true
},
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180
},
isTable: false
},
{
label: '任务单号',
field: 'jobNumber',
sort: 'custom',
table: {
width: 180
},
isTable: false
},
{
label: '采购收货记录单号',
field: 'purchaseReceiptRecordNumber',
sort: 'custom',
table: {
width: 180
},
isSearch: true,
sortTableDefault: 3,
sortSearchDefault: 5,
}, {
label: 'qad采购退货记录单号',
field: 'qadPurchaseReturnRecordCode',
sort: 'custom',
table: {
width: 180
},
sortSearchDefault:3,
sortTableDefault: 4,
isTable: true
},
{
label: '发货单号',
field: 'asnNumber',
sort: 'custom',
table: {
width: 180
},
sortSearchDefault:3,
isSearch: true,
sortTableDefault: 2
},
{
label: '要货计划单号',
field: 'ppNumber',
sort: 'custom',
table: {
width: 180
},
isTable: false
},
{
label: '供应商代码',
field: 'supplierCode',
sort: 'custom',
table: {
width: 150
},
sortTableDefault: 1,
sortSearchDefault:2,
isSearch: true
},
{
label: '从月台代码',
field: 'fromDockCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '承运商',
field: 'carrierCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '运输方式',
field: 'transferMode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '车牌号',
field: 'vehiclePlateNumber',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '到仓库代码',
field: 'toWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '出库事务类型',
field: 'outTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '入库事务类型',
field: 'inTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
},
},
{
label: '到库区类型范围',
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
},
},
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '到库区代码范围',
field: 'toAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '执行时间',
field: 'executeTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
export const PurchasereturnRecordMain = useCrudSchemas(
reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
sortTableDefault: 1012,
sortSearchDefault: 1,
isSearch: true
},
{
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
table: {
width: 180
},
isTable: false
},
{
label: '任务单号',
field: 'jobNumber',
sort: 'custom',
table: {
width: 180
},
isTable: false
},
{
label: '采购收货记录单号',
field: 'purchaseReceiptRecordNumber',
sort: 'custom',
table: {
width: 180
},
isSearch: true,
sortTableDefault: 3,
sortSearchDefault: 5
},
{
label: 'qad采购退货记录单号',
field: 'qadPurchaseReturnRecordCode',
sort: 'custom',
table: {
width: 180
},
sortSearchDefault: 3,
sortTableDefault: 4,
isTable: true
},
{
label: '发货单号',
field: 'asnNumber',
sort: 'custom',
table: {
width: 180
},
sortSearchDefault: 3,
isSearch: true,
sortTableDefault: 2
},
{
label: '要货计划单号',
field: 'ppNumber',
sort: 'custom',
table: {
width: 180
},
isTable: false
},
{
label: 'Q2通知单号',
field: 'q2Number',
sort: 'custom',
isSearch: false,
isDetail: true,
sortTableDefault: 4,
table: {
width: 150
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
// multiple: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择Q2通知单号', // 输入框占位文本
searchField: 'number', // 查询弹窗赋值字段
searchTitle: 'Q2通知单号', // 查询弹窗标题
searchAllSchemas: Q2.allSchemas, // 查询弹窗所需类
searchPage: InspectionQ2Api.getQ2Page, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'status',
value: '0',
isMainValue: false
}
],
verificationParams: [
{
key: 'number',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
}
}
},
},
{
label: '生效日期',
field: 'activeDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
{
label: '供应商代码',
field: 'supplierCode',
sort: 'custom',
table: {
width: 150
},
sortTableDefault: 1,
sortSearchDefault: 2,
isSearch: true
},
{
label: '从月台代码',
field: 'fromDockCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '承运商',
field: 'carrierCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '运输方式',
field: 'transferMode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '车牌号',
field: 'vehiclePlateNumber',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '从仓库代码',
field: 'fromWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '到仓库代码',
field: 'toWarehouseCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '出库事务类型',
field: 'outTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '入库事务类型',
field: 'inTransactionType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '从库区类型范围',
field: 'fromAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '到库区类型范围',
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '从库区代码范围',
field: 'fromAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '到库区代码范围',
field: 'toAreaCodes',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '执行时间',
field: 'executeTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
// {
// label: '代码',
// field: 'code',
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '接口类型',
field: 'interfaceType',
dictType: DICT_TYPE.INTERFACE_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
},
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
isTable: false,
},
{
label: '是否可用',
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
{
label: '生效日期',
field: 'activeDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
style: { width: '100%' },
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x'
}
}
},
},
// {
// label: '原因',
// field: 'available',
// sort: 'custom',
// table: {
// width: 150
// },
// isTable: true,
// },
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
{
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
sort: 'custom',
table: {
width: 180
{
label: '截止时间',
field: 'dueTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: false,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
isTable: true,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x',
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
// {
// label: '代码',
// field: 'code',
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '接口类型',
field: 'interfaceType',
dictType: DICT_TYPE.INTERFACE_TYPE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '创建者',
field: 'creator',
sort: 'custom',
table: {
width: 150
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '是否可用',
field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
isTable: false,
sort: 'custom',
table: {
width: 150
}
},
isTable: false,
},
{
label: '操作',
field: 'action',
isDetail: false,
isForm: false,
table: {
width: 150,
fixed: 'right'
// {
// label: '原因',
// field: 'available',
// sort: 'custom',
// table: {
// width: 150
// },
// isTable: true,
// },
{
label: '创建时间',
field: 'createTime',
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 180
},
isTable: true,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
dateFormat: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'x'
}
}
},
}
]))
{
label: '创建者',
field: 'creator',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
{
label: '操作',
field: 'action',
isDetail: false,
isForm: false,
table: {
width: 150,
fixed: 'right'
}
}
])
)
//表单校验
export const PurchasereturnRecordMainRules = reactive({

6
src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue

@ -308,6 +308,12 @@ const searchTableSuccess = async (formField, searchField, val, formRef, type, ro
}
} else {
const setV = {}
if (formField == 'supplierCode') {
setV['q2Number'] = ''
}
if (formField == 'q2Number') {
setV['q2Number'] = val[0]['number']
}
if (formField == 'purchaseReceiptRecordNumber') {
// isShowButton.value = false
setV[formField] = val[0][searchField]

1207
src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts

File diff suppressed because it is too large

3
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue

@ -577,6 +577,9 @@ const handleImport = () => {
/** 添加/修改操作 */
const formRef = ref()
const openForm = async (type : string, row ?: number) => {
// :
SupplierinvoiceRequestDetail.allSchemas.tableFormColumns = SupplierinvoiceRequestDetail.allSchemas.tableFormColumns.filter(item=>item.field!='contractAmountTotal'&&item.field!='purchaseAmontTotal'&&item.field!='differencePriceTotal')
if(type=='update'){
//
SupplierinvoiceRequestMain.allSchemas.formSchema.forEach((item) => {

108
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts

@ -1240,8 +1240,9 @@ export const SupplierinvoiceRequestDetailMain = useCrudSchemas(reactive<CrudSche
isDetail: true,
},
{
label: '',
field: '',
label: '系统采购价格',
field: 'purchaseAmountTotalMain',
formatter: accountantFormart,
sortTableDefault: 6,
isForm: false,
isTable: false,
@ -1271,8 +1272,9 @@ export const SupplierinvoiceRequestDetailMain = useCrudSchemas(reactive<CrudSche
isDetail: true,
},
{
label: '',
field: '',
label: '总价差',
field: 'differencePriceTotalMain',
formatter: accountantFormart,
sortTableDefault: 6,
isForm: false,
isTable: false,
@ -1367,7 +1369,7 @@ export const SupplierinvoiceRequestDetailMain = useCrudSchemas(reactive<CrudSche
isDetail: true,
},
{
label: '差',
label: '差',
field: '',
sortTableDefault: 6,
isForm: false,
@ -1468,35 +1470,6 @@ export const SupplierinvoiceRequestDetailMain = useCrudSchemas(reactive<CrudSche
isSearch: false,
isDetail: true,
},
// {
// label: '总价差',
// field: 'differencePriceTotal',
// formatter: accountantFormart,
// sortTableDefault: 6,
// isForm: false,
// isTable: false,
// isSearch: false,
// isDetail: true,
// },
// {
// label: '采购金额',
// field: 'purchaseAmontTotal',
// formatter: accountantFormart,
// sortTableDefault: 6,
// isForm: false,
// isTable: false,
// isSearch: false,
// isDetail: true,
// },
// {
// label: '',
// field: '',
// sortTableDefault: 6,
// isForm: false,
// isTable: false,
// isSearch: false,
// isDetail: true,
// },
]))
@ -1753,6 +1726,39 @@ export const SupplierinvoiceRequestDetail = useCrudSchemas(reactive<CrudSchema[]
precision: 5,
}
},
{
label: '合同金额',
field: 'contractAmountTotal',
table: {
width: 150
},
isForm:false,
tableForm:{
disabled: true
}
},
{
label: '采购金额',
field: 'purchaseAmontTotal',
table: {
width: 150
},
isForm:false,
tableForm:{
disabled: true
}
},
{
label: '总差额',
field: 'differencePriceTotal',
table: {
width: 150
},
isForm:false,
tableForm:{
disabled: true
}
},
{
label: '单价差额',
field: 'differencePrice',
@ -2047,39 +2053,7 @@ export const SupplierinvoiceRequestDetail = useCrudSchemas(reactive<CrudSchema[]
width: 150
},
},
// {
// label: '合同金额',
// field: 'contractAmountTotal',
// table: {
// width: 150
// },
// isForm:false,
// tableForm:{
// disabled: true
// }
// },
// {
// label: '采购金额',
// field: 'purchaseAmontTotal',
// table: {
// width: 150
// },
// isForm:false,
// tableForm:{
// disabled: true
// }
// },
// {
// label: '总差额',
// field: 'differencePriceTotal',
// table: {
// width: 150
// },
// isForm:false,
// tableForm:{
// disabled: true
// }
// },
{
label: '操作',

Loading…
Cancel
Save