songguoqiang 2 months ago
parent
commit
5a396e032a
  1. 9
      README.md
  2. 4
      src/api/system/user/index.ts
  3. 3
      src/api/wms/business/inputBlur.ts
  4. 7
      src/api/wms/productionscrapRecordMain/index.ts
  5. 5
      src/api/wms/purchasereceiptRecordMain/index.ts
  6. 7
      src/api/wms/qadCostcentre/index.ts
  7. 16
      src/components/BasicForm/src/BasicForm.vue
  8. 10
      src/components/TableForm/src/TableForm.vue
  9. 2
      src/config/axios/service.ts
  10. 3
      src/locales/en-US.ts
  11. 3
      src/locales/zh-CN.ts
  12. 13
      src/utils/disposition/defaultButtons.ts
  13. 30
      src/views/login/components/LoginForm.vue
  14. 3
      src/views/login/updatePassword.vue
  15. 94
      src/views/qms/inspectionRecord/index.vue
  16. 6
      src/views/system/user/UserForm.vue
  17. 3
      src/views/system/user/index.vue
  18. 1
      src/views/wms/basicDataManage/subject/subjectAccount/subjectAccount.data.ts
  19. 4
      src/views/wms/countManage/count/countJobMain/countJobMain.data.ts
  20. 101
      src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/customerreturnRequestMain.data.ts
  21. 56
      src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/index.vue
  22. 2
      src/views/wms/deliversettlementManage/deliver/deliverJobMain/index.vue
  23. 8
      src/views/wms/deliversettlementManage/deliver/deliverRecordMain/deliverRecordMain.data.ts
  24. 2
      src/views/wms/deliversettlementManage/deliver/deliverRecordMain/index.vue
  25. 6
      src/views/wms/deliversettlementManage/deliver/deliverRequestMain/deliverRequestMain.data.ts
  26. 112
      src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue
  27. 22
      src/views/wms/deliversettlementManage/deliverplan/deliverPlanMain/index.vue
  28. 22
      src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue
  29. 8
      src/views/wms/inventoryjobManage/containermanage/containerRecordMain/index.vue
  30. 23
      src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/index.vue
  31. 24
      src/views/wms/inventoryjobManage/containermanage/scrapContainerMainRequest/index.vue
  32. 17
      src/views/wms/issueManage/issue/issueRequestMain/issueRequestMain.data.ts
  33. 22
      src/views/wms/issueManage/productionreturn/productionreturnRecordMain/productionreturnRecordMain.data.ts
  34. 8
      src/views/wms/issueManage/productionreturn/productionreturnRecordMainHold/productionreturnRecordMainHold.data.ts
  35. 20
      src/views/wms/issueManage/productionscrap/productionscrapRecordMain/index.vue
  36. 35
      src/views/wms/issueManage/productionscrap/productionscrapRecordMain/productionscrapRecordMain.data.ts
  37. 20
      src/views/wms/issueManage/productionscrap/productionscrapRequestMain/index.vue
  38. 26
      src/views/wms/issueManage/productionscrap/productionscrapRequestMain/productionscrapRequestMain.data.ts
  39. 26
      src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts
  40. 42
      src/views/wms/moveManage/inventorychange/inventorychangeRecordMain/index.vue
  41. 11
      src/views/wms/moveManage/inventorymove/inventorymoveJobMain/index.vue
  42. 19
      src/views/wms/moveManage/inventorymove/inventorymoveJobMain/inventorymoveJobMain.data.ts
  43. 4
      src/views/wms/moveManage/inventorymove/inventorymoveRecordMain/index.vue
  44. 14
      src/views/wms/moveManage/inventorymove/inventorymoveRecordMainNew/index.vue
  45. 14
      src/views/wms/moveManage/inventorymove/inventorymoveRecordMainOKHOLD/index.vue
  46. 17
      src/views/wms/moveManage/inventorymove/inventorymoveRecordMainOKHOLD/inventorymoveRecordMainOKHOLD.data.ts
  47. 50
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue
  48. 19
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/inventorymoveRequestMain.data.ts
  49. 78
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMainHOLDWIP/index.vue
  50. 161
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMainMOVE/index.vue
  51. 108
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOKHOLD/index.vue
  52. 76
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOKHOLD/inventorymoveRequestMain.data.ts
  53. 2
      src/views/wms/productionManage/productreceipt/productreceiptRecordMain/index.vue
  54. 28
      src/views/wms/productionManage/productreceipt/productreceiptRequestMain/productreceiptRequestMain.data.ts
  55. 2
      src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRecordMain/index.vue
  56. 29
      src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/productreceiptAssembleRequestMain.data.ts
  57. 2
      src/views/wms/productionManage/productreceiptscrap/productreceiptscrapJobMain/index.vue
  58. 2
      src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRecordMain/index.vue
  59. 34
      src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRequestMain/index.vue
  60. 55
      src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRequestMain/productreceiptscrapRequestMain.data.ts
  61. 28
      src/views/wms/productionManage/productredress/productredressRequestMain/index.vue
  62. 240
      src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts
  63. 50
      src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue
  64. 15
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue
  65. 4
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMOrderTypeMain/index.vue
  66. 4
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue
  67. 2
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/index.vue
  68. 2
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue
  69. 2
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMainNew/index.vue
  70. 4
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/index.vue
  71. 1
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/supplierinvoiceRecordMain.data.ts

9
README.md

@ -54,7 +54,14 @@ form: {
key:'available', // 查询列表中字段
value:'TRUE', // 指查询具体值
isMainValue: false // 表示查询条件不是主表的字段的值
}
},
{
key:'workshopCode',
value:'workshopCode',
message: '请填写车间代码!',
isMainValue: true,
isRemoveParams: true // 仅用于前端校验,不传参
},
],
verificationPage: ItembasicApi.getItemListByCodes, // tableForm下方输入框校验失去焦点之后是否正确的方法
isShowTableFormSearch: true, //tableForm下方是否出现输入框

4
src/api/system/user/index.ts

@ -100,6 +100,10 @@ export const forgetPassword = (data : UserVO) => {
export const updatePassword = (data : UserVO) => {
return request.put({ url: '/system/user/updatePassword', data })
}
// 重置密码
export const updateUserPassword = (data : UserVO) => {
return request.put({ url: '/system/user/update-password', data })
}
export const getPassWordConfig = () => {
return request.get({ url: '/system/password/getConfig' })

3
src/api/wms/business/inputBlur.ts

@ -453,7 +453,8 @@ export const FormBlur = async (field, val, routeName, formRef, detailData, formS
...arr1.filter((item) => !arr2.includes(item)),
...arr2.filter((item) => !arr1.includes(item))
].join(',')
message.alert('代码' + str + '没有找到对应数据')
const cleanedStr = str.replace(/[,]+$/, ''); // 去掉末尾的逗号// 去掉所有非字母和数字的符号
message.alert('代码' + cleanedStr + '没有找到对应数据')
formRef.setValues(setV)
return
}

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

@ -69,4 +69,9 @@ export const exportProductionscrapRecordMain = async (params) => {
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/wms/productionscrap-record-main/get-import-template' })
}
}
// 撤销
export const revoke = async (id: number) => {
return await request.get({ url: `/wms/productionscrap-record-main/revoke?id=` + id })
}

5
src/api/wms/purchasereceiptRecordMain/index.ts

@ -134,3 +134,8 @@ export const createPutawayRequest = async (number:string) => {
export const createInspectRequest = async (number:string) => {
return await request.post({ url: `/wms/purchasereceipt-record-main/createInspectRequest?number=`+number })
}
// 创建采购退货记录申请
export const createPurchasereturnRecord = async (number:string) => {
return await request.post({ url: `/wms/purchasereceipt-record-main/createPurchasereturnRecord?number=`+number })
}

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

@ -57,4 +57,9 @@ export const exportQadCostcentre = async (params) => {
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/wms/qad-costcentre/get-import-template' })
}
}
// 根据code获取数据列表
export const getCostCenterByCodes = async (params) => {
return await request.get({ url: `/wms/qad-costcentre/listByCostcentreCode`, params })
}

16
src/components/BasicForm/src/BasicForm.vue

@ -85,6 +85,7 @@
label: '汇总',
prop: 'CollectionTable'
}]" v-model="tabSheet" @change="tabChange"/>
<slot name="TableFormHead"></slot>
<div class="table" v-if="tableAllSchemas&&tableAllSchemas.tableFormColumns&& fromeWhere != 'countPlan'" v-show="(tabSheet=='TableForm'&&isBusiness && formType == 'create' && fromeWhere != 'countPlan')||(tabSheet=='TableForm'&&isBusiness && formType == 'update' && updateTypeEdiltSubList && fromeWhere != 'countPlan')">
<TableForm
ref="tableFormRef"
@ -526,6 +527,11 @@ const opensearchTable = (
)
return
}
if(searchCondition[i].isRemoveParams){
//
_searchCondition[searchCondition[i].key] = ''
}
}
} else if (searchCondition[i].isTableRowValue) {
if (searchCondition[i].required) {
@ -549,10 +555,12 @@ const opensearchTable = (
formRef.value.formModel[searchCondition[i].value] == '' ||
formRef.value.formModel[searchCondition[i].value] == undefined
) {
message.warning(
searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!'
)
return
if(!searchCondition[i].isOptional){ //
message.warning(
searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!'
)
return
}
}
}
if(formRef.value.formModel[searchCondition[i].value]){

10
src/components/TableForm/src/TableForm.vue

@ -118,7 +118,7 @@
/>
<el-button
:key="headerItem.field + $index + 'button'"
v-if="headerItem?.tableForm?.isInpuFocusShow"
v-if="headerItem?.tableForm?.isInpuFocusShow || showInputSearch(headerItem, row)"
@click="inpuFocus(headerItem, row, index)"
><Icon icon="ep:search" size="14"
/></el-button>
@ -672,7 +672,7 @@ const handleAddTable = () => {
}
//
const inpuFocus = (headerItem, row, index) => {
if (headerItem?.tableForm?.isInpuFocusShow) {
if (headerItem?.tableForm?.isInpuFocusShow||showInputSearch(headerItem, row)) {
emit('inpuFocus', headerItem, row, index)
}
}
@ -721,6 +721,12 @@ const batchAdd = () => {
}
emit('batchAdd', keyWord.value)
}
const showInputSearch = (headerItem, row) => {
//
return Boolean(row['isInpuFocusShow_' + headerItem.field])
}
const disabledInput = (headerItem, row) => {
if (headerItem.tableForm?.isInpuFocusShow) {
if (headerItem.tableForm?.enterSearch) {

2
src/config/axios/service.ts

@ -182,7 +182,7 @@ service.interceptors.response.use(
'<div>5 分钟搭建本地环境</div>'
})
return Promise.reject(new Error(msg))
} else if (code === 1002000010) {
} else if (code === 1002000008) {
if (msg === '无效的刷新令牌') {
// hard coding:忽略这个提示,直接登出
console.log(msg)

3
src/locales/en-US.ts

@ -996,6 +996,7 @@ export default {
:'Generate purchase receipt request',
:'Send the arrival inspection request',
:'Generate a purchase listing request',
退:'Generate purchase return records',
:'Generate a purchase listing request',
:'Generate inventory adjustment request',
:'New Inventory',
@ -1041,7 +1042,9 @@ export default {
'确认生成上架申请吗?':'Are you sure to generate a listing application?',
:'The listing application was successfully generated',
'确认生成到货检验申请吗?':'Is the arrival inspection application confirmed to be generated?',
'确认生成采购退货记录吗?':'Are you sure to generate a purchase return record?',
:'The arrival inspection application was successfully generated',
退:'Purchase return record generated successfully',
:'Purchase receipt record master data',
退:'Purchase return record master data',
:'Appendix to the contract',

3
src/locales/zh-CN.ts

@ -998,6 +998,7 @@ export default {
:'生成采购收货申请',
:'发送到货检验申请',
:'生成采购上架申请',
退:'生成采购退货记录',
:'生成制品上架申请',
:'生成盘点调整申请',
:'重盘',
@ -1043,7 +1044,9 @@ export default {
'确认生成上架申请吗?':'确认生成上架申请吗?',
:'上架申请生成成功',
'确认生成到货检验申请吗?':'确认生成到货检验申请吗?',
'确认生成采购退货记录吗?':'确认生成采购退货记录吗?',
:'到货检验申请生成成功',
退:'采购退货记录生成成功',
:'采购收货记录主',
退:'采购退货记录主',
:'采购拒收记录主',

13
src/utils/disposition/defaultButtons.ts

@ -1175,6 +1175,19 @@ export function mainPutawayRequestBtn(option: any) {
})
}
// 主列表-生成采购退货记录
export function mainPurchasereturnRecordBtn(option: any) {
return __defaultBtnOption(option, {
label: t(`ts.生成采购退货记录`).replace('ts.', ''),
name: 'purchasereturnRecord',
hide: false,
type: 'primary',
color: '',
link: true, // 文本展现按钮
hasPermi: ''
})
}
// 主列表-生成制品上架申请
export function mainPutawayRequestCpBtn(option: any) {
return __defaultBtnOption(option, {

30
src/views/login/components/LoginForm.vue

@ -57,9 +57,9 @@
<el-form-item>
<el-row justify="space-between" style="width: 100%">
<el-col :span="6">
<el-checkbox v-model="loginData.loginForm.rememberMe">
<!-- <el-checkbox v-model="loginData.loginForm.rememberMe">
{{ t('login.remember') }}
</el-checkbox>
</el-checkbox> -->
</el-col>
<el-col :offset="6" :span="12">
<el-link style="float: right" type="primary"
@ -262,7 +262,7 @@
switch (differenceDays){
case null:
break
case 0:
case 0 || 1:
await ElMessageBox.alert(
'<strong>密码到期,请立即修改</strong>',
'重要提示',
@ -272,15 +272,15 @@
)
router.push({path:"/updatePasswordNewTips",query:{username:loginData.loginForm.username}})
return
case 1:
await ElMessageBox.alert(
'<strong>密码过期,请联系管理员修改</strong>',
'重要提示',
{
dangerouslyUseHTMLString: true,
}
)
return
// case 1:
// await ElMessageBox.alert(
// '<strong></strong>',
// '',
// {
// dangerouslyUseHTMLString: true,
// }
// )
// return
default:
await ElMessageBox.alert(
'密码'+differenceDays+'到期,请尽快修改。',
@ -330,6 +330,12 @@
//
const { wsCache } = useCache()
wsCache.set(CACHE_KEY.DEPT, await DeptApi.getSimpleDeptList())
}catch (e){
if(e.code === 1002000008){
setTimeout(function (){
router.push({path:"/updatePasswordNewTips",query:{username:loginData.loginForm.username}})
},1500)
}
}finally {
console.log('登录-224')
loginLoading.value = false

3
src/views/login/updatePassword.vue

@ -36,6 +36,7 @@
import { getTenantIdByName, sendSmsCode, smsLogin } from '@/api/login'
import * as UserApi from '@/api/system/user'
import { View,Hide } from '@element-plus/icons-vue'
import {updateUserPassword} from "@/api/system/user";
const { t } = useI18n()
const message = useMessage()
const permissionStore = usePermissionStore()
@ -65,7 +66,7 @@
message.error('两次输入的密码不一致,请重新输入!')
} else {
const data = loginData as unknown as UserApi.UserVO
await UserApi.updatePassword(data)
await UserApi.updateUserPassword(data)
//
message.success(t('common.updateSuccess'))
 router.go(-1)

94
src/views/qms/inspectionRecord/index.vue

@ -141,21 +141,21 @@ const route = useRoute() // 路由信息
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(InspectionRecordMain.allSchemas.tableColumns)
if (routeName.value == 'InspectRecordMain') {
tableColumns.value = tableColumns.value.filter((item) => {
return item.label != '操作'
})
}
//
const updataTableColumns = (val) => {
if (routeName.value == 'InspectRecordMain') {
tableColumns.value = val.filter((item) => {
return item.label != '操作'
})
} else {
tableColumns.value = val
}
}
// if (routeName.value == 'InspectRecordMain') {
// tableColumns.value = tableColumns.value.filter((item) => {
// return item.label != ''
// })
// }
////
// const updataTableColumns = (val) => {
// if (routeName.value == 'InspectRecordMain') {
// tableColumns.value = val.filter((item) => {
// return item.label != ''
// })
// } else {
// tableColumns.value = val
// }
// }
//
const { tableObject, tableMethods } = useTable({
@ -166,10 +166,10 @@ const { tableObject, tableMethods } = useTable({
const { getList, setSearchParams } = tableMethods
const searchParams = (model) => {
if (route.name == 'inspectionRecordProduction') {
if (route.name == 'inspectionRecordProduction' ) {
model.available = 'TRUE'
model.inspectionType = '4'
} else if (route.name == 'inspectionRecordPurchase') {
} else if (route.name == 'inspectionRecordPurchase' || route.name == 'InspectRecordMain') {
model.available = 'TRUE'
model.inspectionType = '1'
} else {
@ -235,31 +235,39 @@ const isShowPackageBtn = (row, val) => {
}
// -
const butttondata = (row) => {
return [
// defaultButtons.mainListOrderCOMPLETEBtn({ hide: isShowMainButton(row, ['INCOMPLETE']) }), //
if(route.name == 'InspectRecordMain'){
return [
defaultButtons.mainListPlanCheckQualityReportBtn({}), //
defaultButtons.mainListSupplierResumeBtn({}) //
]
}else {
return [
// defaultButtons.mainListOrderCOMPLETEBtn({ hide: isShowMainButton(row, ['INCOMPLETE']) }), //
defaultButtons.mainApplyDecisionBtn({
// hide: isShowMainButton(row, null),
hasPermi: 'qms:inspection-recode-main:edit'
}), // 使
// defaultButtons.mainListDeleteBtn(null), //
defaultButtons.mainListOrderPubBtn({
hide: isShowMainButton(row, 'publish'),
hasPermi: 'qms:inspection-recode-main:pub'
}), //
defaultButtons.mainListCloseBtn({
hide: isShowMainButton(row, 'publish'),
hasPermi: 'qms:inspection-recode-main:close'
}), //
defaultButtons.mainListPackageBtn({ hide: isShowPackageBtn(row, ['11']) }), //
// defaultButtons.mainListJobExeBtn({
// hide:row.useDecision,
// hasPermi: 'qms:inspection-recode-main:execute',
// }), //
defaultButtons.mainListEditBtn({ hide: isShowEditBtn(row, ['11']) }), //
defaultButtons.mainListPlanCheckQualityReportBtn({}), //
defaultButtons.mainListSupplierResumeBtn({}) //
]
}
defaultButtons.mainApplyDecisionBtn({
// hide: isShowMainButton(row, null),
hasPermi: 'qms:inspection-recode-main:edit'
}), // 使
// defaultButtons.mainListDeleteBtn(null), //
defaultButtons.mainListOrderPubBtn({
hide: isShowMainButton(row, 'publish'),
hasPermi: 'qms:inspection-recode-main:pub'
}), //
defaultButtons.mainListCloseBtn({
hide: isShowMainButton(row, 'publish'),
hasPermi: 'qms:inspection-recode-main:close'
}), //
defaultButtons.mainListPackageBtn({ hide: isShowPackageBtn(row, ['11']) }), //
// defaultButtons.mainListJobExeBtn({
// hide:row.useDecision,
// hasPermi: 'qms:inspection-recode-main:execute',
// }), //
defaultButtons.mainListEditBtn({ hide: isShowEditBtn(row, ['11']) }), //
defaultButtons.mainListPlanCheckQualityReportBtn({}), //
defaultButtons.mainListSupplierResumeBtn({}) //
]
}
const listTableRef = ref()
@ -471,7 +479,7 @@ const submitFormExecute = async (formType, data) => {
const searchFormClick = (searchData) => {
let isHave = searchData?.filters?.some((item) => item.column == 'inspectionType')
if (!isHave) {
if (route.name == 'inspectionRecordPurchase') {
if (route.name == 'inspectionRecordPurchase' || route.name == 'InspectRecordMain') {
searchData.filters.push(
{
action: '==',
@ -514,7 +522,7 @@ const searchFormClick = (searchData) => {
/** 初始化 **/
onMounted(async () => {
if (route.name == 'inspectionRecordPurchase') {
if (route.name == 'inspectionRecordPurchase' || route.name == 'InspectRecordMain') {
tableObject.params = {
available: true,
inspectionType: '1'

6
src/views/system/user/UserForm.vue

@ -69,7 +69,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="岗位">
<el-form-item label="岗位" prop="postIds">
<el-select v-model="formData.postIds" multiple placeholder="请选择">
<el-option
v-for="item in postList"
@ -102,6 +102,7 @@ import { defaultProps, handleTree } from '@/utils/tree'
import * as PostApi from '@/api/system/post'
import * as DeptApi from '@/api/system/dept'
import * as UserApi from '@/api/system/user'
import { getBaseUrl } from '@/utils/systemParam'
defineOptions({ name: 'SystemUserForm' })
@ -126,11 +127,14 @@ const formData = ref({
status: CommonStatusEnum.ENABLE,
roleIds: []
})
const formRules = reactive({
username: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }],
nickname: [{ required: true, message: '用户昵称不能为空', trigger: 'blur' }],
deptId: [{ required: true, message: '部门不能为空', trigger: 'blur' }],
password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
postIds: [{ required: getBaseUrl().includes('scp')?true:false, message: '岗位不能为空', trigger: 'blur' }],
email: [
{
type: 'email',

3
src/views/system/user/index.vue

@ -59,6 +59,8 @@
<el-table-column label="部门" align="center" key="deptName" prop="dept.name" :show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" prop="mobile" width="120" />
<el-table-column label="是否冻结" align="center" prop="frozenStatus" width="80" />
<el-table-column label="上次密码修改时间" align="center" prop="passwordUpdateTime" width="180" :formatter="dateFormatter"/>
<el-table-column label="冻结到期时间" align="center" prop="frozenEndTime" width="180" :formatter="dateFormatter"/>
<el-table-column label="状态" align="center" key="status">
<template #default="scope">
<el-switch v-model="scope.row.status" :active-value="0" :inactive-value="1"
@ -262,7 +264,6 @@ const handleDelete = async (id: number) => {
/** 解冻按钮操作 */
const handleFree = async (row: any) => {
try {
debugger
//
if(row.frozenStatus=="是"){
await UserApi.unLockUser(row.id)

1
src/views/wms/basicDataManage/subject/subjectAccount/subjectAccount.data.ts

@ -279,6 +279,7 @@ export const SubjectAccount = useCrudSchemas(
isMainValue: false
}
],
verificationPage: QadCostcentreApi.getCostCenterByCodes, // 失去焦点校验输入框的数据内容存在
verificationParams: [
{
key: 'costcentreCode',

4
src/views/wms/countManage/count/countJobMain/countJobMain.data.ts

@ -459,7 +459,7 @@ export const CountJobMain = useCrudSchemas(reactive<CrudSchema[]>([
},
{
label: '承接人',
field: 'acceptUserId',
field: 'acceptUserName',
sort: 'custom',
table: {
width: 150
@ -489,7 +489,7 @@ export const CountJobMain = useCrudSchemas(reactive<CrudSchema[]>([
},
{
label: '完成人',
field: 'completeUserId',
field: 'completeUserName',
sort: 'custom',
table: {
width: 150

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

@ -141,6 +141,7 @@ export const CustomerreturnRequestMain = useCrudSchemas(
table: {
width: 180
},
isSearch: true,
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
@ -152,13 +153,21 @@ export const CustomerreturnRequestMain = useCrudSchemas(
isConcatDetailSchemas: true, // 是否主子表合并
searchAllSchemas: DeliverRecordMain.allSchemas, // 查询弹窗所需类
searchDetailSchemas: DeliverRecordDetail.allSchemas, // 查询弹窗所需类
searchPage: DeliverRecordDetailApi.getDeliverRecordDetailPageCustomerreturn, // 查询弹窗所需分页方法
// searchPage: DeliverRecordDetailApi.getDeliverRecordDetailPageCustomerreturn, // 查询弹窗所需分页方法
searchPage: DeliverRecordDetailApi.getDeliverRecordDetailPage, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'isReturnedQty', // 查询列表中字段
value: 'FALSE', // 指查询具体值
action: '==', // 查询拼接条件
isSearch: true, // 使用自定义拼接条件
isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用
},
{
key: 'createTime', // 查询列表中字段
value: dateTime - 30 * 24 * 60 * 60 * 1000 + ',' + dateTime, // 指查询具体值
@ -199,7 +208,7 @@ export const CustomerreturnRequestMain = useCrudSchemas(
width: 150
},
isTable: true,
isSearch: true,
isSearch: false,
form: {
componentProps: {
disabled: true
@ -256,50 +265,50 @@ export const CustomerreturnRequestMain = useCrudSchemas(
}
}
},
{
label: '客户月台代码',
field: 'customerDockCode',
sort: 'custom',
table: {
width: 150
},
isTable: false,
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择客户月台代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '客户月台信息', // 查询弹窗标题
searchAllSchemas: Customerdock.allSchemas, // 查询弹窗所需类
searchPage: CustomerdockApi.pageCustomerCodeToCustomerDockReceiving, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'customerCode',
value: 'customerCode',
message: '请填写客户代码!',
isMainValue: true
}
],
verificationParams: [
{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true
}
] // 失去焦点校验参数
}
}
},
// {
// label: '客户月台代码',
// field: 'customerDockCode',
// sort: 'custom',
// table: {
// width: 150
// },
// isTable: false,
// form: {
// // labelMessage: '信息提示说明!!!',
// componentProps: {
// enterSearch: true,
// isSearchList: true, // 开启查询弹窗
// searchListPlaceholder: '请选择客户月台代码', // 输入框占位文本
// searchField: 'code', // 查询弹窗赋值字段
// searchTitle: '客户月台信息', // 查询弹窗标题
// searchAllSchemas: Customerdock.allSchemas, // 查询弹窗所需类
// searchPage: CustomerdockApi.pageCustomerCodeToCustomerDockReceiving, // 查询弹窗所需分页方法
// searchCondition: [
// {
// key: 'available',
// value: 'TRUE',
// isMainValue: false
// },
// {
// key: 'customerCode',
// value: 'customerCode',
// message: '请填写客户代码!',
// isMainValue: true
// }
// ],
// verificationParams: [
// {
// key: 'code',
// action: '==',
// value: '',
// isMainValue: false,
// isSearch: true,
// isFormModel: true
// }
// ] // 失去焦点校验参数
// }
// }
// },
{
label: '承运商',
field: 'carrierCode',

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

@ -59,6 +59,7 @@
@submitForm="submitForm"
@onEnter="onEnter"
@inputNumberChange="inputNumberChange"
@clearSearchInput="clearSearchInput"
/>
<!-- 添加明细采购收货记录单号 -->
<SearchTable ref="searchTableRef" @searchTableSuccess="searchTableSuccess1" />
@ -210,7 +211,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
setV['deliverRecordNumber'] = val[0]['number']
setV['deliverPlanNumber'] = val[0]['deliverPlanNumber']
// setV['customerCode'] = val[0]['customerCode']
setV['customerDockCode'] = val[0]['customerDockCode']
// setV['customerDockCode'] = val[0]['customerDockCode']
//
DeliverRecordDetailApi.getDeliverRecordDetailPageCustomerreturn({pageSize:999,masterId:val[0]['masterId']}).then(res => {
@ -233,6 +234,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
tableData.value = [...res.list]
originTableData.value = [...res.list]
}
}).catch(err => {
console.log(err)
message.error('错误')
@ -569,10 +571,10 @@ const openForm =async (type: string, row?: number) => {
item.componentProps.isSearchList = false,
item.componentProps.disabled = true
}
if(item.field == 'customerDockCode'){
item.componentProps.isSearchList = false,
item.componentProps.disabled = true
}
// if(item.field == 'customerDockCode'){
// item.componentProps.isSearchList = false,
// item.componentProps.disabled = true
// }
})
}else {
CustomerreturnRequestMain.allSchemas.formSchema.forEach((item) => {
@ -582,9 +584,9 @@ const openForm =async (type: string, row?: number) => {
if(item.field == 'customerCode'){
item.componentProps.isSearchList = true
}
if(item.field == 'customerDockCode'){
item.componentProps.isSearchList = true
}
// if(item.field == 'customerDockCode'){
// item.componentProps.isSearchList = true
// }
})
CustomerreturnRequestDetail.allSchemas.formSchema.forEach((itemDetail) => {
if(itemDetail.field == 'packingNumber'){
@ -725,14 +727,35 @@ const handleDeleteTable = (item, index) => {
const tableSelectionDelete = (selection) => {
tableData.value = tableData.value.filter(item => !selection.includes(item))
}
const clearSearchInput = (field)=>{
console.log('field',field)
if('customerCode' == field){
//
formRef.value.formRef.setValues({
deliverRecordNumber: '',
// customerDockCode:'',
})
tableData.value = []
}else if('deliverRecordNumber' == field){
//
// formRef.value.formRef.setValues({
// customerDockCode:'',
// })
tableData.value = []
}
}
//true0
const inputNumberChange = (field, val,row, index) => {
console.log('inputNumberChange',formRef.value.formRef)
if(field=='qty'){
if(row['subReturnedQty']<=0){
message.error(`发货记录单号${formRef.value.formRef.formModel['deliverRecordNumber']}物料${row['itemCode']}批次${row['batch']}被占用`)
}
if(row['subReturnedQty']!=null&&row['qty']>row['subReturnedQty']){
message.error(`物料${row['itemCode']}最大数量为${row['subReturnedQty']}`)
}
}
console.log('inputNumberChange',field, val,row, index)
}
//
@ -743,25 +766,20 @@ const submitForm = async (formType, submitData) => {
}
let flag = true
tableData.value.forEach(item=>{
if(item['subReturnedQty']<=0){
flag = false
message.error(`发货记录单号${data['deliverRecordNumber']}物料${item['itemCode']}批次${item['batch']}被占用`)
}
if(item['subReturnedQty']!=null&&item['qty']>item['subReturnedQty']){
flag = false
message.error(`物料${item['itemCode']}最大数量为${item['subReturnedQty']}`)
}
})
if(!flag){
return
}
data.subList = tableData.value //
data.subList.forEach(obj => {
if(obj.qty == 0){
message.error(`数量不能为0!`)
flag.value = true
return;
}
})
if(flag.value){
return
}
formRef.value.formLoading = true
try {
if (formType === 'create') {

2
src/views/wms/deliversettlementManage/deliver/deliverJobMain/index.vue

@ -161,7 +161,7 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultExportBtn({hasPermi:'wms:deliver-job-main:export'}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //

8
src/views/wms/deliversettlementManage/deliver/deliverRecordMain/deliverRecordMain.data.ts

@ -552,6 +552,14 @@ export const DeliverRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150
},
},
{
label: '父包装号',
field: 'parentPackingNumber',
sort: 'custom',
table: {
width: 150
},
},
{
label: '包装规格',
field: 'packUnit',

2
src/views/wms/deliversettlementManage/deliver/deliverRecordMain/index.vue

@ -120,7 +120,7 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultExportBtn({hasPermi:'wms:deliver-record-main:export'}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //

6
src/views/wms/deliversettlementManage/deliver/deliverRequestMain/deliverRequestMain.data.ts

@ -234,6 +234,12 @@ export const DeliverRequestMain = useCrudSchemas(
value: 'TRUE',
isMainValue: false
},
{
key: 'customerCode',
value: 'customerCode',
message: '请填写客户代码!',
isMainValue: true
},
{
key: 'status',
value: '6',

112
src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue

@ -34,6 +34,7 @@
</el-button>
</template>
<template #action="{ row,$index }">
<ButtonBase :Butttondata="butttondata(row,$index)" @button-base-click="buttonTableClick($event,row)" />
</template>
@ -42,7 +43,7 @@
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="formRef"
ref="basicFormRef"
:isOpenSearchTable="true"
fieldTableColumn="itemCode"
@success="getList"
@ -62,6 +63,7 @@
@searchTableSuccess="searchTableSuccess"
@submitForm="submitForm"
:isShowButton = isShowButton
@clearSearchInput="clearSearchInput"
/>
<!-- 详情 -->
@ -93,6 +95,11 @@ import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { DeliverRequestMain,DeliverRequestMainRules,DeliverRequestDetail,DeliverRequestDetailRules } from './deliverRequestMain.data'
import * as DeliverRequestMainApi from '@/api/wms/deliverRequestMain'
import * as DeliverRequestDetailApi from '@/api/wms/deliverRequestDetail'
import * as CustomerdockApi from '@/api/wms/customerdock'
import * as CustomerItemApi from '@/api/wms/customeritem'
import { Customeritem } from '@/views/wms/basicDataManage/customerManage/customeritem/customeritem.data'
import * as DeliverPlanDetailApi from '@/api/wms/deliverPlanDetail'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import * as AreabasicApi from '@/api/wms/areabasic'
import { formatDate } from '@/utils/formatTime'
@ -174,11 +181,23 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =
setV[formField] = val[0][searchField]
if(formField == 'deliverPlanNumber') {
setV['deliverPlanNumber'] = val[0]['number']
setV['customerCode'] = val[0]['customerCode']
if(formField == 'itemCode'){
console.log( val[0]);
row['uom'] = val[0]['customerUom']
tableData.value = []
//-
let subRes = await DeliverPlanDetailApi.getDeliverPlanDetailPage({
number:val[0]['number']
})
if(subRes&&subRes.list&&subRes.list.length>0){
const tableFormKeys = {}
DeliverRequestDetail.allSchemas.tableFormColumns.forEach(item => {
tableFormKeys[item.field] = item.default ? item.default : ''
})
val.forEach(item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
tableData.value.push(newRow)
})
}
console.log('subRes',subRes)
} else if(formField == 'customerDockCode') {
//
setV['toWarehouseCode'] = val[0]['warehouseCode']//
@ -187,13 +206,60 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =
if(res){
setV['deliverType'] = res['type']
}
} else {
} else if(formField == 'customerCode'){
//
let res = await CustomerdockApi.getCustomerdockPage({
by:"ASC",
pageNo:1,
pageSize:20,
available: "TRUE",
customerCode: val[0]['code']
})
if(res&&res.list&&res.list.length>0){
setV['customerDockCode'] = res.list[0]['code']//-
setV['toWarehouseCode'] = res.list[0]['warehouseCode']//
setV['toLocationCode'] = res.list[0]['defaultLocationCode']//
let res2 = await AreabasicApi.selectAreabasicDOByCode(res.list[0]['defaultLocationCode'])
if(res2){
setV['deliverType'] = res2['type']
}
}else{
setV['customerDockCode'] = ''
setV['toWarehouseCode'] = ''//
setV['toLocationCode'] = ''//
setV['deliverType'] = ''//
}
tableData.value = []
}else {
setV[formField] = val[0][searchField]
}
formRef.setValues(setV)
}
})
}
const clearSearchInput = (field)=>{
console.log('field',field)
if('customerCode' == field){
//
basicFormRef.value.formRef.setValues({
customerDockCode: '',
toWarehouseCode: '',
toLocationCode: '',
deliverPlanNumber: '',
deliverType: '',
})
tableData.value = []
}else if('customerDockCode' == field){
basicFormRef.value.formRef.setValues({
toWarehouseCode: '',
toLocationCode: '',
deliverType: '',
})
}else if('deliverPlanNumber' == field){
tableData.value = []
}
}
//
const searchTableSuccessDetail = (formField, searchField, val, formRef ) => {
nextTick(() => {
@ -239,9 +305,9 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:deliver-request-main:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:deliver-request-main:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:deliver-request-main:export'}), //
defaultButtons.defaultAddBtn({hasPermi:`wms:${routeName.value}:create`}), //
defaultButtons.defaultImportBtn({hasPermi:`wms:${routeName.value}:import`}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -294,14 +360,14 @@ const butttondata = (row,$index) => {
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:'wms:deliver-request-main:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:deliver-request-main:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:deliver-request-main:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:deliver-request-main:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:deliver-request-main:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3','7']),hasPermi:'wms:deliver-request-main:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:deliver-request-main:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:deliver-request-main:delete'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:`wms:${routeName.value}:close`}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:`wms:${routeName.value}:reAdd`}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:submit`}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:refused`}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:agree`}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3','7']),hasPermi:`wms:${routeName.value}:handle`}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:update`}), //
// defaultButtons.mainListDeleteBtn({hasPermi:`wms:${routeName.value}:delete`}), //
]
}
@ -383,7 +449,7 @@ const buttonTableClick = async (val, row) => {
}
/** 添加/修改操作 */
const formRef = ref()
const basicFormRef = ref()
const openForm =async (type: string, row?: number) => {
if(type == "update"){
DeliverRequestMain.allSchemas.formSchema.forEach((item) => {
@ -414,7 +480,7 @@ const openForm =async (type: string, row?: number) => {
})
}
tableData.value = [] //
formRef.value.open(type, row)
basicFormRef.value.open(type, row)
}
/**
@ -546,13 +612,13 @@ const submitForm = async (formType, submitData) => {
if(flag.value){
return
}
formRef.value.formLoading = true
basicFormRef.value.formLoading = true
try {
if (formType === 'create') {
if(tableData.value.length <= 0){
message.warning(`子表明细不能为空!`)
flag.value = true
formRef.value.formLoading = false
basicFormRef.value.formLoading = false
return;
}
await DeliverRequestMainApi.createDeliverRequestMain(data)
@ -561,7 +627,7 @@ const submitForm = async (formType, submitData) => {
await DeliverRequestMainApi.updateDeliverRequestMain(data)
message.success(t('common.updateSuccess'))
}
formRef.value.dialogVisible = false
basicFormRef.value.dialogVisible = false
//
if (formType === 'create') {
getList()
@ -569,7 +635,7 @@ const submitForm = async (formType, submitData) => {
buttonBaseClick('refresh',null)
}
} finally {
formRef.value.formLoading = false
basicFormRef.value.formLoading = false
}
}

22
src/views/wms/deliversettlementManage/deliverplan/deliverPlanMain/index.vue

@ -249,9 +249,9 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:deliver-plan-main:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:deliver-plan-main:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:deliver-plan-main:export'}), //
defaultButtons.defaultAddBtn({hasPermi:`wms:${routeName.value}:create` }), //
defaultButtons.defaultImportBtn({hasPermi:`wms:${routeName.value}:import` }), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export` }), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -303,14 +303,14 @@ const butttondata = (row,$index) => {
return []
}
return [
defaultButtons.mainListPlanOpeBtn({hide:isShowMainButton(row,['5']),hasPermi:'wms:deliver-plan-main:open'}), //
defaultButtons.mainListPlanCloBtn({hide:isShowMainButton(row,['1','2','3','4']),hasPermi:'wms:deliver-plan-main:close'}), //
defaultButtons.mainListPlanSubBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:deliver-plan-main:submit'}), //
defaultButtons.mainListPlanTurBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:deliver-plan-main:reject'}), //
defaultButtons.mainListPlanAppBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:deliver-plan-main:agree'}), //
defaultButtons.mainListPlanPubBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:deliver-plan-main:publish'}), //
defaultButtons.mainListPlanResBtn({hide:isShowMainButton(row,['4']),hasPermi:'wms:deliver-plan-main:resetting'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:deliver-plan-main:update'}), //
defaultButtons.mainListPlanOpeBtn({hide:isShowMainButton(row,['5']),hasPermi:`wms:${routeName.value}:open`}), //
defaultButtons.mainListPlanCloBtn({hide:isShowMainButton(row,['1','2','3','4']),hasPermi:`wms:${routeName.value}:close`}), //
defaultButtons.mainListPlanSubBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:submit`}), //
defaultButtons.mainListPlanTurBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:reject`}), //
defaultButtons.mainListPlanAppBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:agree`}), //
defaultButtons.mainListPlanPubBtn({hide:isShowMainButton(row,['3']),hasPermi:`wms:${routeName.value}:publish`}), //
defaultButtons.mainListPlanResBtn({hide:isShowMainButton(row,['4']),hasPermi:`wms:${routeName.value}:resetting`}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:update`}), //
]
}

22
src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue

@ -292,9 +292,9 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:container-main-request:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:container-main-request:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:container-main-request:export'}), //
defaultButtons.defaultAddBtn({hasPermi:`wms:${routeName.value}:create`}), //
defaultButtons.defaultImportBtn({hasPermi:`wms:${routeName.value}:import`}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -346,14 +346,14 @@ const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['ma
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4','6']),hasPermi:'wms:container-main-request:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:container-main-request:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:container-main-request:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:container-main-request:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:container-main-request:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:container-main-request:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:container-main-request:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:container-main-request:delete'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4','6']),hasPermi:`wms:${routeName.value}:close`}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:`wms:${routeName.value}:reAdd`}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:submit`}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:refused`}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:agree`}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:`wms:${routeName.value}:handle`}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:update`}), //
// defaultButtons.mainListDeleteBtn({hasPermi:`wms:${routeName.value}:delete`}), //
]
}

8
src/views/wms/inventoryjobManage/containermanage/containerRecordMain/index.vue

@ -142,8 +142,8 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
// defaultButtons.defaultAddBtn({hasPermi:'wms:container-record-detail:create'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:container-record-detail:export'}), //
// defaultButtons.defaultAddBtn({hasPermi:`wms:{routeName.value}:create`}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:{routeName.value}:export`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -184,8 +184,8 @@ const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['ma
return []
}
return [
// defaultButtons.mainListEditBtn({hasPermi:'wms:container-record-main:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:container-record-main:delete'}), //
// defaultButtons.mainListEditBtn({hasPermi:`wms:{routeName.value}:update`}), //
// defaultButtons.mainListDeleteBtn({hasPermi:`wms:{routeName.value}:delete`}), //
]
}

23
src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/index.vue

@ -115,6 +115,7 @@ const { tableObject, tableMethods } = useTable({
/**
*
*/
if ( routeName.value == 'InitialContainerManageRequest') {
tableObject.params = {
type:'INITIAL',
@ -245,9 +246,9 @@ const isShowMainButton = (row,val) => {
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:container-main-request:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:container-main-request:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:container-main-request:export'}), //
defaultButtons.defaultAddBtn({hasPermi:'wms:initial-container-main-request:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:initial-container-main-request:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:initial-container-main-request:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -290,14 +291,14 @@ const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['ma
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4','6']),hasPermi:'wms:container-main-request:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:container-main-request:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:container-main-request:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:container-main-request:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:container-main-request:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:container-main-request:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:container-main-request:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:container-main-request:delete'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4','6']),hasPermi:'wms:initial-container-main-request:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:initial-container-main-request:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:initial-container-main-request:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:initial-container-main-request:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:initial-container-main-request:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:initial-container-main-request:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:initial-container-main-request:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:initial-container-main-request:delete'}), //
]
}

24
src/views/wms/inventoryjobManage/containermanage/scrapContainerMainRequest/index.vue

@ -96,6 +96,8 @@ import Detail from '@/components/Detail/src/Detail.vue'
import { formatDate } from '@/utils/formatTime'
import { usePageLoading } from '@/hooks/web/usePageLoading'
const { loadStart, loadDone } = usePageLoading()
//
// 使
defineOptions({ name: 'ScrapContainerManageRequest' })
const message = useMessage() //
@ -267,9 +269,9 @@ const isShowMainButton = (row,val) => {
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:container-main-request:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:container-main-request:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:container-main-request:export'}), //
defaultButtons.defaultAddBtn({hasPermi:'wms:scrap-container-main-request:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:scrap-container-main-request:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:scrap-container-main-request:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -312,14 +314,14 @@ const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['ma
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4','6']),hasPermi:'wms:container-main-request:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:container-main-request:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:container-main-request:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:container-main-request:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:container-main-request:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:container-main-request:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:container-main-request:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:container-main-request:delete'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4','6']),hasPermi:'wms:scrap-container-main-request:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:scrap-container-main-request:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:scrap-container-main-request:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:scrap-container-main-request:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:scrap-container-main-request:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:scrap-container-main-request:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:scrap-container-main-request:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:scrap-container-main-request:delete'}), //
]
}

17
src/views/wms/issueManage/issue/issueRequestMain/issueRequestMain.data.ts

@ -852,17 +852,20 @@ export const IssueRequestDetail = useCrudSchemas(
value: 'TRUE',
isMainValue: false
},
// {
// key:'workshopCode',
// value:'workshopCode',
// message: '请填写车间代码!',
// isMainValue: true
// },
{
key:'workshopCode',
value:'workshopCode',
message: '请填写车间代码!',
isMainValue: true,
isRemoveParams: true // 仅用于前端校验,不传参
},
{
key:'productionLineCode',
value:'productionLineCode',
message: '请填写生产线代码!',
isMainValue: true
isMainValue: true,
isRemoveParams: true // 仅用于前端校验,不传参
},
{
key: 'businessTypeCode',

22
src/views/wms/issueManage/productionreturn/productionreturnRecordMain/productionreturnRecordMain.data.ts

@ -447,17 +447,19 @@ export const ProductionreturnRecordDetail = useCrudSchemas(reactive<CrudSchema[]
},
},
{
label: '物料描述1',
field: 'itemDesc1',
label: '数量',
field: 'qty',
sort: 'custom',
hiddenInMain: true,
table: {
width: 150
},
form: {
component: 'InputNumber',
}
},
{
label: '物料描述2',
field: 'itemDesc2',
label: '物料描述1',
field: 'itemDesc1',
sort: 'custom',
hiddenInMain: true,
table: {
@ -465,17 +467,15 @@ export const ProductionreturnRecordDetail = useCrudSchemas(reactive<CrudSchema[]
},
},
{
label: '数量',
field: 'qty',
label: '物料描述2',
field: 'itemDesc2',
sort: 'custom',
hiddenInMain: true,
table: {
width: 150
},
hiddenInMain: true,
form: {
component: 'InputNumber',
}
},
{
label: '从批次',
field: 'fromBatch',

8
src/views/wms/issueManage/productionreturn/productionreturnRecordMainHold/productionreturnRecordMainHold.data.ts

@ -19,7 +19,7 @@ export const ProductionreturnRecordMain = useCrudSchemas(reactive<CrudSchema[]>(
label: '申请单号',
field: 'requestNumber',
sort: 'custom',
sortTableDefault:996,
sortTableDefault:1,
table: {
width: 180
},
@ -30,7 +30,7 @@ export const ProductionreturnRecordMain = useCrudSchemas(reactive<CrudSchema[]>(
label: '任务单号',
field: 'jobNumber',
sort: 'custom',
sortTableDefault:997,
sortTableDefault:2,
table: {
width: 180
},
@ -56,6 +56,7 @@ export const ProductionreturnRecordMain = useCrudSchemas(reactive<CrudSchema[]>(
table: {
width: 150
},
sortTableDefault:4,
},
{
@ -438,7 +439,7 @@ export const ProductionreturnRecordDetail = useCrudSchemas(reactive<CrudSchema[]
sort: 'custom',
dictType: DICT_TYPE.RECEIVE_STATUS,
dictClass: 'string',
sortTableDefault:998,
sortTableDefault:3,
isTable: true,
table: {
width: 150
@ -459,6 +460,7 @@ export const ProductionreturnRecordDetail = useCrudSchemas(reactive<CrudSchema[]
table: {
width: 150
},
sortTableDefault:5,
},
{
label: '物料名称',

20
src/views/wms/issueManage/productionscrap/productionscrapRecordMain/index.vue

@ -135,17 +135,33 @@ const buttonBaseClick = (val, item) => {
}
}
const isShowRevokeButton = (row,val) => {
if (val.indexOf(row.revokeFlag) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = (row,$index) => {
const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['masterId'] == row['masterId']):-1
if(findIndex>-1&&findIndex<$index){
return []
return [
defaultButtons.backoutBtn({hide:isShowRevokeButton(row,['FALSE'])}) //
]
}
return []
return [
defaultButtons.backoutBtn({hide:isShowRevokeButton(row,['FALSE'])}) //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'backout') { //
await ProductionscrapRecordMainApi.revoke(row.masterId)
buttonBaseClick('refresh',null)
}
}
//
const { wsCache } = useCache()

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

@ -372,13 +372,12 @@ export const ProductionscrapRecordMain = useCrudSchemas(
isTable: false
},
{
label: '备注',
field: 'remark',
label: '备注',
field: 'mainRemark',
sort: 'custom',
table: {
width: 150
},
isTable: false
},
// {
// label: '创建者',
@ -521,6 +520,16 @@ export const ProductionscrapRecordMain = useCrudSchemas(
activeValue: 'TRUE'
}
}
},
{
label: '操作',
field: 'action',
isDetail: false,
isForm: false,
table: {
width: 120,
fixed: 'right'
},
}
])
)
@ -597,6 +606,23 @@ export const ProductionscrapRecordDetail = useCrudSchemas(reactive<CrudSchema[]>
width: 150
},
},
{
label: '是否已撤销',
field: 'revokeFlag',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,
table: {
width: 150
},
},
{
label: '关联单据号',
field: 'relateRecordNumber',
sort: 'custom',
table: {
width: 150
},
},
{
label: '物料代码',
field: 'itemCode',
@ -818,13 +844,12 @@ export const ProductionscrapRecordDetail = useCrudSchemas(reactive<CrudSchema[]>
hiddenInMain: true,
},
{
label: '备注',
label: '明细备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
hiddenInMain: true,
},
{
label: '创建者',

20
src/views/wms/issueManage/productionscrap/productionscrapRequestMain/index.vue

@ -235,10 +235,10 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
return
}
const isType = await isItemType(val[0]['itemCode'], labelType.value)
if(!isType){
message.warning('当前物料可制造与其他数据不一致,请重新选择!')
} else {
// const isType = await isItemType(val[0]['itemCode'], labelType.value)
// if(!isType){
// message.warning('')
// } else {
row['itemCode'] = val[0]['itemCode']
row['uom'] = val[0]['uom']
row['inventoryStatus'] = val[0]['inventoryStatus']
@ -263,7 +263,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
row['singlePrice'] = resyStdcost[0].price
row['amount'] = Number(Number(resyStdcost[0].price * row['qty']).toFixed(2))
}
}
// }
} else if(formField == 'workStationCode') {
//
val.forEach(item=>{
@ -302,10 +302,10 @@ const searchTableSuccessDetail = (formField, searchField, val, formRef ) => {
nextTick(async () => {
const setV = {}
if(formField == 'itemCode') {
const isType = await isItemType(val[0]['itemCode'], labelType.value)
if(!isType){
message.warning('当前物料可制造与其他数据不一致,请重新选择!')
} else {
// const isType = await isItemType(val[0]['itemCode'], labelType.value)
// if(!isType){
// message.warning('')
// } else {
setV['itemCode'] = val[0]['itemCode']
setV['uom'] = val[0]['uom']
setV['inventoryStatus'] = val[0]['inventoryStatus']
@ -322,7 +322,7 @@ const searchTableSuccessDetail = (formField, searchField, val, formRef ) => {
item.tableForm.max = val[0]['qty']
}
})
}
// }
} else if(formField == 'workStationCode') {
setV['workStationCode'] = val[0]['code']
setV['fromLocationCode'] = val[0]['rawLocationCode']

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

@ -839,15 +839,12 @@ export const ProductionscrapRequestMain = useCrudSchemas(
isForm: false
},
{
label: '备注',
field: 'remark',
label: '备注',
field: 'mainRemark',
sort: 'custom',
table: {
width: 150
},
isForm:false,
isTableForm:false,
isTable: false,
},
{
label: '业务类型',
@ -1340,7 +1337,7 @@ export const ProductionscrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]
isMainValue: false
},{
key: 'businessType',
value: 'ReturnToStore', // 合格退料
value: 'ProductionScrap', // 合格退料
isMainValue: false
}]
},
@ -1705,6 +1702,14 @@ export const ProductionscrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]
}
}
},
{
label: '明细备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
},
{
label: '创建者',
field: 'creator',
@ -1773,15 +1778,6 @@ export const ProductionscrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]
isTableForm: false,
isForm: false
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
hiddenInMain: true,
},
{
label: '操作',
field: 'action',

26
src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts

@ -899,19 +899,19 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
isTable:false,
isForm: false
},
{
label: '未执行任务数量',
field: 'unexecutedQty',
sort: 'custom',
table: {
width: 150
},
form: {
component: 'InputNumber',
},
isTableForm:false,
hiddenInMain:true,
},
// {
// label: '未执行任务数量',
// field: 'unexecutedQty',
// sort: 'custom',
// table: {
// width: 150
// },
// form: {
// component: 'InputNumber',
// },
// isTableForm:false,
// hiddenInMain:true,
// },
{
label: '操作',
field: 'action',

42
src/views/wms/moveManage/inventorychange/inventorychangeRecordMain/index.vue

@ -95,48 +95,6 @@ const { tableObject, tableMethods } = useTable({
getListApi: InventorychangeRecordDetailApi.getInventorychangeRecordDetailPage //
})
//
/**
* OktoholdRecordMain 合格转隔离
*/
if ( routeName.value == 'OktoholdReqordMain') {
tableObject.params = {
fromInventoryStatus: 'OK',
toInventoryStatus:'HOLD'
}
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "HOLD"
} else if ( routeName.value == 'HoldtookRecordMain') {
tableObject.params = {
fromInventoryStatus: 'HOLD',
toInventoryStatus:'OK'
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "OK"
} else if ( routeName.value == 'HoldtoscrapRecordMain') {
tableObject.params = {
fromInventoryStatus: 'HOLD',
toInventoryStatus:'SCRAP'
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "SCRAP"
} else if ( routeName.value == 'OktoscrapRecordMain') {
tableObject.params = {
fromInventoryStatus: 'OK',
toInventoryStatus:'SCRAP'
}
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "SCRAP"
} else if ( routeName.value == 'ScraptoholdRecordMain') {
tableObject.params = {
fromInventoryStatus: 'SCRAP',
toInventoryStatus:'HOLD'
}
fromInventoryStatus.value = 'SCRAP'
toInventoryStatus.value = "HOLD"
}
//
const { getList, setSearchParams } = tableMethods

11
src/views/wms/moveManage/inventorymove/inventorymoveJobMain/index.vue

@ -139,9 +139,10 @@ const { tableObject, tableMethods } = useTable({
getListApi: InventorymoveJobDetailApi.getInventorymoveJobDetailPage //
})
const importFileName = ref()
//
/**
* OktoholdJobMain 合格转隔离
* OktoholdJobMain 合格转隔离 物料隔离
*/
if ( routeName.value == 'OktoholdJobMain') {
tableObject.params = {
@ -213,7 +214,7 @@ const importFileName = ref()
// toInventoryStatus.value = "HOLD"
businessType.value = 'ScrapToHold'
importFileName.value = '报废转隔离任务'
} else {
} else {//InventorymoveJobMain
console.log(146 , fromInventoryStatus.value)
tableObject.params = {
businessType :'Move'
@ -225,10 +226,12 @@ const importFileName = ref()
//
const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultExportBtn({hasPermi:'wms:inventorymove-job-main:export'}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //

19
src/views/wms/moveManage/inventorymove/inventorymoveJobMain/inventorymoveJobMain.data.ts

@ -1,5 +1,7 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
import {Supplier} from "@/views/wms/basicDataManage/supplierManage/supplier/supplier.data";
import * as SupplierApi from "@/api/wms/supplier";
/**
* @returns {Array}
@ -680,6 +682,23 @@ export const InventorymoveJobDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150
},
},
{
label: '供应商代码',
field: 'supplierCode',
sort: 'custom',
isDetail: true,
table: {
width: 150,
},
},
{
label: '供应商名称',
field: 'supplierName',
isDetail: true,
table: {
width: 180
},
},
{
label: '供应商批次',
field: 'altBatch',

4
src/views/wms/moveManage/inventorymove/inventorymoveRecordMain/index.vue

@ -193,8 +193,8 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultExportBtn({hasPermi:'wms:inventorymove-record-main:export'}), //
defaultButtons.defaultImportBtn({hide:recordImport.value}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
defaultButtons.defaultImportBtn({hide:recordImport.value,hasPermi:`wms:${routeName.value}:import`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //

14
src/views/wms/moveManage/inventorymove/inventorymoveRecordMainNew/index.vue

@ -100,7 +100,7 @@ import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { formatDate } from '@/utils/formatTime'
import { usePageLoading } from '@/hooks/web/usePageLoading'
const { loadStart, loadDone } = usePageLoading()
//
// ()InventorymoveRecordMainNew
defineOptions({ name: 'InventorymoveRecordMainNew' })
const message = useMessage() //
@ -111,7 +111,6 @@ const route = useRoute() // 路由信息
const routeName = ref()
routeName.value = route.name
const tableColumns = ref([...InventorymoveRecordMainNew.allSchemas.tableColumns,...InventorymoveRecordDetailNew.allSchemas.tableMainColumns])
console.log(99 , routeName.value)
const fromInventoryStatus = ref()
const toInventoryStatus = ref()
@ -137,8 +136,8 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn(null), //
defaultButtons.defaultExportBtn({hasPermi:'wms:inventorymove-record-main:export'}), //
// defaultButtons.defaultImportBtn({hasPermi:'wms:inventorymove-record-main:import'}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
// defaultButtons.defaultImportBtn({hasPermi:`wms:${routeName.value}:import`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -463,11 +462,8 @@ const searchList = (model)=>{
/** 初始化 **/
onMounted(async () => {
getList()
if(routeName.value == "InventorymoveRecordMain"){
importTemplateData.templateUrl = await InventorymoveRecordMainApi.importTemplate()
}else {
importTemplateData.templateUrl = await InventorymoveRecordMainApi.importTemplateExceptMove()
}
// ()InventorymoveRecordMainNew
importTemplateData.templateUrl = await InventorymoveRecordMainApi.importTemplateExceptMove()
})
</script>
./inventorymoveRecordRequestMain.data

14
src/views/wms/moveManage/inventorymove/inventorymoveRecordMainOKHOLD/index.vue

@ -74,7 +74,8 @@ import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { formatDate } from '@/utils/formatTime'
import { usePageLoading } from '@/hooks/web/usePageLoading'
const { loadStart, loadDone } = usePageLoading()
//
// InventorymoveRecordMainOKHOLD
// 使
defineOptions({ name: 'InventorymoveRecordMainOKHOLD' })
const message = useMessage() //
@ -113,8 +114,8 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultExportBtn({hasPermi:'wms:inventorymove-record-main:export'}), //
//defaultButtons.defaultImportBtn({hasPermi:'wms:inventorymove-record-main:import'}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
//defaultButtons.defaultImportBtn({hasPermi:`wms:${routeName.value}:import`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -300,10 +301,7 @@ const searchList = (model)=>{
/** 初始化 **/
onMounted(async () => {
getList()
if(routeName.value == "InventorymoveRecordMain"){
importTemplateData.templateUrl = await InventorymoveRecordMainApi.importTemplate()
}else {
importTemplateData.templateUrl = await InventorymoveRecordMainApi.importTemplateExceptMove()
}
// InventorymoveRecordMainOKHOLD
importTemplateData.templateUrl = await InventorymoveRecordMainApi.importTemplateExceptMove()
})
</script>

17
src/views/wms/moveManage/inventorymove/inventorymoveRecordMainOKHOLD/inventorymoveRecordMainOKHOLD.data.ts

@ -487,6 +487,23 @@ export const InventorymoveRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150
},
},
{
label: '供应商代码',
field: 'supplierCode',
sort: 'custom',
isDetail: true,
table: {
width: 150,
},
},
{
label: '供应商名称',
field: 'supplierName',
isDetail: true,
table: {
width: 180
},
},
{
label: '供应商批次',
field: 'altBatch',

50
src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue

@ -117,18 +117,7 @@ const { tableObject, tableMethods } = useTable({
/**
* OktoholdRequestMain 合格转隔离
*/
if ( routeName.value == 'OktoholdRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'OK',
// toInventoryStatus:'HOLD',
businessType :'OkToHold'
}
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "HOLD"
businessType.value = 'OkToHold'
importFileName.value = '物料转隔离申请'
}
else if ( routeName.value == 'NoktoholdRequestMain') {
if ( routeName.value == 'NoktoholdRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'NOK',
// toInventoryStatus:'HOLD',
@ -377,9 +366,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
newRow['fromLocationCode'] = item['locationCode']
newRow['uom'] = item['uom']
newRow['qty'] = item['qty']
if(routeName.value == 'OktoholdRequestMain'){
newRow['toInventoryStatus'] = "HOLD"
}else if(routeName.value == 'NoktoholdRequestMain'){
if(routeName.value == 'NoktoholdRequestMain'){
newRow['toInventoryStatus'] = "HOLD"
}else if ( routeName.value == 'HoldtookRequestMain') {
newRow['toInventoryStatus'] = "OK"
@ -431,9 +418,7 @@ const searchTableSuccessDetail = (formField, searchField, val, formRef ) => {
setV['fromInventoryStatus'] = val[0]['inventoryStatus']
setV['fromLocationCode'] = val[0]['locationCode']
setV['uom'] = val[0]['uom']
if(routeName.value == 'OktoholdRequestMain'){
setV['toInventoryStatus'] = "HOLD"
}else if(routeName.value == 'NoktoholdRequestMain'){
if(routeName.value == 'NoktoholdRequestMain'){
setV['toInventoryStatus'] = "HOLD"
}else if ( routeName.value == 'HoldtookRequestMain') {
setV['toInventoryStatus'] = "OK"
@ -458,9 +443,9 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:inventorymove-request-main:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:inventorymove-request-main:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:inventorymove-request-main:export'}), //
defaultButtons.defaultAddBtn({hasPermi:`wms:${routeName.value}:create`}), //
defaultButtons.defaultImportBtn({hasPermi:`wms:${routeName.value}:import`}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -512,14 +497,14 @@ const butttondata = (row,$index) => {
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:'wms:inventorymove-request-main:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:inventorymove-request-main:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:inventorymove-request-main:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:inventorymove-request-main:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:inventorymove-request-main:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:inventorymove-request-main:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:inventorymove-request-main:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:inventorymove-request-main:delete'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:`wms:${routeName.value}:close`}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:`wms:${routeName.value}:reAdd`}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:submit`}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:refused`}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:agree`}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:`wms:${routeName.value}:handle`}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:update`}), //
// defaultButtons.mainListDeleteBtn({hasPermi:`wms:${routeName.value}:delete`}), //
]
}
@ -672,10 +657,7 @@ const handleExport = async () => {
//
loadStart()
const excelTitle = ref(route.meta.title)
if(routeName.value == 'OktoholdRequestMain'){
const data = await InventorymoveRequestMainApi.exportOkToHoldRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
}else if ( routeName.value == 'HoldtookRequestMain') {
if ( routeName.value == 'HoldtookRequestMain') {
const data = await InventorymoveRequestMainApi.exportHoldToOkRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
}else if ( routeName.value == 'HoldtoscrapRequestMain') {
@ -753,7 +735,7 @@ const submitForm = async (formType, submitData) => {
data.subList.forEach(item => {
console.log(556565,item);
if(fromInventoryStatus.value){
item.fromInventoryStatus = fromInventoryStatus.value
//item.fromInventoryStatus = fromInventoryStatus.value
item.toInventoryStatus = toInventoryStatus.value
}
if(item.qty == 0){

19
src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/inventorymoveRequestMain.data.ts

@ -256,15 +256,16 @@ export const InventorymoveRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
// }
// }
// },
// {
// label: '备注',
// field: 'remark',
// sort: 'custom',
// table: {
// width: 150
// },
// isTable: false,
// },
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
isTable: true,
sortTableDefault:1000
},
// {
// label: '自动提交',
// field: 'autoCommit',

78
src/views/wms/moveManage/inventorymove/inventorymoveRequestMainHOLDWIP/index.vue

@ -92,7 +92,8 @@ import { formatDate } from '@/utils/formatTime'
import { usePageLoading } from '@/hooks/web/usePageLoading'
import {importTemplateHoldOk} from "@/api/wms/inventorymoveRequestMain";
const { loadStart, loadDone } = usePageLoading()
//
// 线HoldtoWipRequestMain
// 线使
defineOptions({ name: 'InventorymoveRequestMain' })
const message = useMessage() //
@ -305,23 +306,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
newRow['fromLocationCode'] = item['locationCode']
newRow['uom'] = item['uom']
newRow['qty'] = item['qty']
if(routeName.value == 'OktoholdRequestMain'){
newRow['toInventoryStatus'] = "HOLD"
}else if(routeName.value == 'NoktoholdRequestMain'){
newRow['toInventoryStatus'] = "HOLD"
}else if ( routeName.value == 'HoldtookRequestMain') {
newRow['toInventoryStatus'] = "OK"
}else if ( routeName.value == 'HoldtoWipRequestMain') {
newRow['toInventoryStatus'] = "OK"
}else if ( routeName.value == 'HoldtoscrapRequestMain') {
newRow['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'OktoscrapRequestMain') {
newRow['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'ScraptoholdRequestMain') {
newRow['toInventoryStatus'] = "HOLD"
}else{
newRow['toInventoryStatus'] = item['inventoryStatus']
}
newRow['toInventoryStatus'] = "OK" //HoldtoWipRequestMain 线
tableData.value.push(newRow)
})
} else {
@ -362,23 +348,7 @@ const searchTableSuccessDetail = (formField, searchField, val, formRef ) => {
setV['fromInventoryStatus'] = val[0]['inventoryStatus']
setV['fromLocationCode'] = val[0]['locationCode']
setV['uom'] = val[0]['uom']
if(routeName.value == 'OktoholdRequestMain'){
setV['toInventoryStatus'] = "HOLD"
}else if(routeName.value == 'NoktoholdRequestMain'){
setV['toInventoryStatus'] = "HOLD"
}else if ( routeName.value == 'HoldtookRequestMain') {
setV['toInventoryStatus'] = "OK"
}else if ( routeName.value == 'HoldtoWipRequestMain') {
setV['toInventoryStatus'] = "OK"
}else if ( routeName.value == 'HoldtoscrapRequestMain') {
setV['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'OktoscrapRequestMain') {
setV['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'ScraptoholdRequestMain') {
setV['toInventoryStatus'] = "HOLD"
}else{
setV['toInventoryStatus'] = val[0]['inventoryStatus']
}
setV['toInventoryStatus'] = "OK" // HoldtoWipRequestMain 线
} else {
setV[formField] = val[0][searchField]
}
@ -391,9 +361,9 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:inventorymove-request-main:create'}), //
//defaultButtons.defaultImportBtn({hasPermi:'wms:inventorymove-request-main:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:inventorymove-request-main:export'}), //
defaultButtons.defaultAddBtn({hasPermi:`wms:${routeName.value}:create`}), //
//defaultButtons.defaultImportBtn({hasPermi:'wms:${routeName.value}:import'}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -445,14 +415,14 @@ const butttondata = (row,$index) => {
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:'wms:inventorymove-request-main:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:inventorymove-request-main:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:inventorymove-request-main:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:inventorymove-request-main:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:inventorymove-request-main:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:inventorymove-request-main:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:inventorymove-request-main:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:inventorymove-request-main:delete'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:`wms:${routeName.value}:close`}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:`wms:${routeName.value}:reAdd`}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:submit`}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:refused`}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:agree`}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:`wms:${routeName.value}:handle`}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:update`}), //
// defaultButtons.mainListDeleteBtn({hasPermi:`wms:${routeName.value}:delete`}), //
]
}
@ -657,7 +627,7 @@ const submitForm = async (formType, submitData) => {
data.subList.forEach(item => {
console.log(556565,item);
if(fromInventoryStatus.value){
item.fromInventoryStatus = fromInventoryStatus.value
//item.fromInventoryStatus = fromInventoryStatus.value
item.toInventoryStatus = toInventoryStatus.value
}
if(item.qty == 0){
@ -734,16 +704,8 @@ const searchList = (model)=>{
/** 初始化 **/
onMounted(async () => {
getList()
//
if(routeName.value == "InventorymoveRequestMain"){
importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplate()
}
//
else if(routeName.value == "HoldtookRequestMain"){
importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplateHoldOk()
}
else {
importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplateExceptMove()
}
// HoldtoWipRequestMain 线
importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplateExceptMove()
})
</script>

161
src/views/wms/moveManage/inventorymove/inventorymoveRequestMainMOVE/index.vue

@ -93,6 +93,7 @@ import { formatDate } from '@/utils/formatTime'
import { usePageLoading } from '@/hooks/web/usePageLoading'
const { loadStart, loadDone } = usePageLoading()
//
// 使
defineOptions({ name: 'InventorymoveRequestMain' })
const message = useMessage() //
@ -112,75 +113,9 @@ const importFileName = ref()
const { tableObject, tableMethods } = useTable({
getListApi: InventorymoveRequestDetailApi.getInventorymoveRequestDetailPage //
})
//
/**
* OktoholdRequestMain 合格转隔离
*/
if ( routeName.value == 'OktoholdRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'OK',
// toInventoryStatus:'HOLD',
businessType :'OkToHold'
}
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "HOLD"
businessType.value = 'OkToHold'
importFileName.value = '物料转隔离申请'
}
else if ( routeName.value == 'NoktoholdRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'NOK',
// toInventoryStatus:'HOLD',
businessType :'NokToHold'
}
fromInventoryStatus.value = 'NOK'
toInventoryStatus.value = "HOLD"
businessType.value = 'NokToHold'
importFileName.value = '不合格转隔离申请'
}
else if ( routeName.value == 'HoldtookRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'HOLD',
// toInventoryStatus:'OK',
businessType :'HoldToOk'
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "OK"
businessType.value = 'HoldToOk'
importFileName.value = '隔离转合格申请'
} else if ( routeName.value == 'HoldtoscrapRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'HOLD',
// toInventoryStatus:'SCRAP',
businessType:'HoldToScrap'
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "SCRAP"
businessType.value = 'HoldToScrap'
importFileName.value = '隔离转报废申请'
} else if ( routeName.value == 'OktoscrapRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'OK',
// toInventoryStatus:'SCRAP',
businessType :'OkToScrap'
}
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "SCRAP"
businessType.value = 'OkToScrap'
importFileName.value = '合格转报废申请'
}
else if ( routeName.value == 'ScraptoholdRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'SCRAP',
// toInventoryStatus:'HOLD',
businessType :'ScrapToHold'
}
fromInventoryStatus.value = 'SCRAP'
toInventoryStatus.value = "HOLD"
businessType.value = 'ScrapToHold'
importFileName.value = '报废转隔离申请'
} else {
// InventorymoveRequestMain
// 使
if ( routeName.value == 'InventorymoveRequestMain') {
tableObject.params = {
businessType :'Move'
}
@ -389,26 +324,9 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
newRow['fromLocationCode'] = item['locationCode']
newRow['uom'] = item['uom']
newRow['qty'] = item['qty']
if(routeName.value == 'OktoholdRequestMain'){
newRow['toInventoryStatus'] = "HOLD"
}else if(routeName.value == 'NoktoholdRequestMain'){
newRow['toInventoryStatus'] = "HOLD"
}else if ( routeName.value == 'HoldtookRequestMain') {
newRow['toInventoryStatus'] = "OK"
}else if ( routeName.value == 'HoldtoscrapRequestMain') {
newRow['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'OktoscrapRequestMain') {
newRow['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'ScraptoholdRequestMain') {
newRow['toInventoryStatus'] = "HOLD"
}else{
newRow['toInventoryStatus'] = item['inventoryStatus']
}
newRow['toInventoryStatus'] = item['inventoryStatus']//
tableData.value.push(newRow)
})
if(routeName.value == 'OktoholdRequestMain'){
getDefaultToLocationCode()
}
} else {
row[formField] = val[0][searchField]
}
@ -446,21 +364,8 @@ const searchTableSuccessDetail = (formField, searchField, val, formRef ) => {
setV['fromInventoryStatus'] = val[0]['inventoryStatus']
setV['fromLocationCode'] = val[0]['locationCode']
setV['uom'] = val[0]['uom']
if(routeName.value == 'OktoholdRequestMain'){
setV['toInventoryStatus'] = "HOLD"
}else if(routeName.value == 'NoktoholdRequestMain'){
setV['toInventoryStatus'] = "HOLD"
}else if ( routeName.value == 'HoldtookRequestMain') {
setV['toInventoryStatus'] = "OK"
}else if ( routeName.value == 'HoldtoscrapRequestMain') {
setV['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'OktoscrapRequestMain') {
setV['toInventoryStatus'] = "SCRAP"
}else if ( routeName.value == 'ScraptoholdRequestMain') {
setV['toInventoryStatus'] = "HOLD"
}else{
setV['toInventoryStatus'] = val[0]['inventoryStatus']
}
setV['toInventoryStatus'] = val[0]['inventoryStatus'] //InventorymoveRequestMain
} else {
setV[formField] = val[0][searchField]
}
@ -473,9 +378,9 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:inventorymove-request-main:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:inventorymove-request-main:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:inventorymove-request-main:export'}), //
defaultButtons.defaultAddBtn({hasPermi:`wms:${routeName.value}:create`}), //
defaultButtons.defaultImportBtn({hasPermi:`wms:${routeName.value}:import`}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -527,14 +432,14 @@ const butttondata = (row,$index) => {
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:'wms:inventorymove-request-main:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:inventorymove-request-main:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:inventorymove-request-main:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:inventorymove-request-main:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:inventorymove-request-main:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:inventorymove-request-main:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:inventorymove-request-main:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:inventorymove-request-main:delete'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:`wms:${routeName.value}:close`}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:`wms:${routeName.value}:reAdd`}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:submit`}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:refused`}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:agree`}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:`wms:${routeName.value}:handle`}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:update`}), //
// defaultButtons.mainListDeleteBtn({hasPermi:`wms:${routeName.value}:delete`}), //
]
}
@ -677,27 +582,9 @@ const handleExport = async () => {
//
loadStart()
const excelTitle = ref(route.meta.title)
if(routeName.value == 'OktoholdRequestMain'){
const data = await InventorymoveRequestMainApi.exportOkToHoldRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
}else if ( routeName.value == 'HoldtookRequestMain') {
const data = await InventorymoveRequestMainApi.exportHoldToOkRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
}else if ( routeName.value == 'HoldtoscrapRequestMain') {
const data = await InventorymoveRequestMainApi.exportHoldToScrapRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
}else if ( routeName.value == 'OktoscrapRequestMain') {
const data = await InventorymoveRequestMainApi.exportOkToScrapRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
}
// else if ( routeName.value == 'ScraptoholdRequestMain') {
// const data = await InventorymoveRequestMainApi.exportScrapToHoldRequestMain(tableObject.params)
// download.excel(data, '.xlsx')
// }
else{
const data = await InventorymoveRequestMainApi.exportInventorymoveRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
}
// InventorymoveRequestMain
const data = await InventorymoveRequestMainApi.exportInventorymoveRequestMain(tableObject.params)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
} catch {
} finally {
loadDone()
@ -757,7 +644,7 @@ const submitForm = async (formType, submitData) => {
data.subList.forEach(item => {
console.log(556565,item);
if(fromInventoryStatus.value){
item.fromInventoryStatus = fromInventoryStatus.value
//item.fromInventoryStatus = fromInventoryStatus.value
item.toInventoryStatus = toInventoryStatus.value
}
if(item.qty == 0){
@ -833,11 +720,11 @@ const searchList = (model)=>{
/** 初始化 **/
onMounted(async () => {
getList()
// InventorymoveRequestMain
if(routeName.value == "InventorymoveRequestMain"){
importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplate()
}else {
importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplateExceptMove()
}
})
</script>

108
src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOKHOLD/index.vue

@ -60,6 +60,7 @@
@tableSelectionDelete="tableSelectionDelete"
@searchTableSuccess="searchTableSuccess"
@submitForm="submitForm"
@clearInput="clearInput"
/>
<!-- 详情 -->
@ -94,7 +95,7 @@ import { formatDate } from '@/utils/formatTime'
import dayjs from 'dayjs'
import { usePageLoading } from '@/hooks/web/usePageLoading'
const { loadStart, loadDone } = usePageLoading()
//
// OktoholdRequestMain
// 使
defineOptions({ name: 'InventorymoveRequestMain' })
@ -116,6 +117,7 @@ const { tableObject, tableMethods } = useTable({
getListApi: InventorymoveRequestDetailApi.getInventorymoveRequestDetailPage //
})
if ( routeName.value == 'OktoholdRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'OK',
@ -127,65 +129,6 @@ if ( routeName.value == 'OktoholdRequestMain') {
businessType.value = 'OkToHold'
importFileName.value = '物料转隔离申请'
}
else if ( routeName.value == 'NoktoholdRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'NOK',
// toInventoryStatus:'HOLD',
businessType :'NokToHold'
}
fromInventoryStatus.value = 'NOK'
toInventoryStatus.value = "HOLD"
businessType.value = 'NokToHold'
importFileName.value = '不合格转隔离申请'
}
else if ( routeName.value == 'HoldtookRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'HOLD',
// toInventoryStatus:'OK',
businessType :'HoldToOk'
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "OK"
businessType.value = 'HoldToOk'
importFileName.value = '隔离转合格申请'
} else if ( routeName.value == 'HoldtoscrapRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'HOLD',
// toInventoryStatus:'SCRAP',
businessType:'HoldToScrap'
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "SCRAP"
businessType.value = 'HoldToScrap'
importFileName.value = '隔离转报废申请'
} else if ( routeName.value == 'OktoscrapRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'OK',
// toInventoryStatus:'SCRAP',
businessType :'OkToScrap'
}
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "SCRAP"
businessType.value = 'OkToScrap'
importFileName.value = '合格转报废申请'
}
else if ( routeName.value == 'ScraptoholdRequestMain') {
tableObject.params = {
// fromInventoryStatus: 'SCRAP',
// toInventoryStatus:'HOLD',
businessType :'ScrapToHold'
}
fromInventoryStatus.value = 'SCRAP'
toInventoryStatus.value = "HOLD"
businessType.value = 'ScrapToHold'
importFileName.value = '报废转隔离申请'
} else {
tableObject.params = {
businessType :'Move'
}
businessType.value = 'Move'
importFileName.value = '库存移动申请'
}
InventorymoveRequestMain.allSchemas.tableFormColumns.map(item =>{
if(item.field == 'fromWarehouseCode') {
@ -361,6 +304,11 @@ const getDefaultToLocationCode = async ()=>{
formRef.value.formRef.formModel["toLocationCode"] = res.list[0]['code']
}
}
const clearInput = (field, row, index) => {
if(field=='supplierCode'){
row['supplierName'] = ''
}
}
//
const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
nextTick(() => {
@ -379,9 +327,22 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
newRow['uom'] = item['uom']
newRow['qty'] = item['qty']
newRow['toInventoryStatus'] = "HOLD" //
newRow['supplierCode'] = item['supplierCode']
newRow['supplierName'] = item['supplierName']
if(!newRow['supplierCode']){
newRow.disabled_supplierCode = false
newRow.isInpuFocusShow_supplierCode = true
}else{
newRow.disabled_supplierCode = true
newRow.isInpuFocusShow_supplierCode = false
}
tableData.value.push(newRow)
})
} else {
} else if(formField == 'supplierCode'){
row[formField] = val[0][searchField]
row['supplierName'] = val[0]['supplierName']
row['supplierCode'] = val[0]['supplierCode']
} else{
row[formField] = val[0][searchField]
}
} else {
@ -432,9 +393,9 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:inventorymove-request-main:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:inventorymove-request-main:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:inventorymove-request-main:export'}), //
defaultButtons.defaultAddBtn({hasPermi:`wms:${routeName.value}:create`}), //
defaultButtons.defaultImportBtn({hasPermi:`wms:${routeName.value}:import`}), //
defaultButtons.defaultExportBtn({hasPermi:`wms:${routeName.value}:export`}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -486,14 +447,14 @@ const butttondata = (row,$index) => {
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:'wms:inventorymove-request-main:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:inventorymove-request-main:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:inventorymove-request-main:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:inventorymove-request-main:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:inventorymove-request-main:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:inventorymove-request-main:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:inventorymove-request-main:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:inventorymove-request-main:delete'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:`wms:${routeName.value}:close`}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:`wms:${routeName.value}:reAdd`}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:submit`}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:refused`}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:`wms:${routeName.value}:agree`}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:`wms:${routeName.value}:handle`}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:`wms:${routeName.value}:update`}), //
// defaultButtons.mainListDeleteBtn({hasPermi:`wms:${routeName.value}:delete`}), //
]
}
@ -720,7 +681,7 @@ const submitForm = async (formType, submitData) => {
data.subList.forEach(item => {
console.log(556565,item);
if(fromInventoryStatus.value){
item.fromInventoryStatus = fromInventoryStatus.value
//item.fromInventoryStatus = fromInventoryStatus.value
item.toInventoryStatus = toInventoryStatus.value
}
if(item.qty == 0){
@ -797,6 +758,7 @@ const searchList = (model)=>{
/** 初始化 **/
onMounted(async () => {
getList()
console.log(routeName.value)
if(routeName.value == "InventorymoveRequestMain"){
importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplate()
}else {

76
src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOKHOLD/inventorymoveRequestMain.data.ts

@ -25,7 +25,11 @@ const queryParams = {
// 获取当前操作人的部门
import { useUserStore } from '@/store/modules/user'
import { TableColumn } from '@/types/table'
import * as SupplierItemApi from "@/api/wms/supplieritem";
import {
Supplieritem
} from "@/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data";
import {getSupplieritemPage} from "@/api/wms/supplieritem";
const userStore = useUserStore()
const userDept = userStore.userSelfInfo.dept
// id 转str 否则form回显匹配不到
@ -554,6 +558,28 @@ export const BalanceShow = useCrudSchemas(
},
isSearch: false
},
{
label: '供应商代码',
field: 'supplierCode',
sort: 'custom',
isSearch: false,
table: {
width: 150,
},
},
{
label: '供应商名称',
field: 'supplierName',
isForm:true,
form:{
componentProps:{
disabled: true
}
},
table: {
width: 180
}
},
{
label: '库存数量',
field: 'qty',
@ -1104,12 +1130,58 @@ export const InventorymoveRequestDetail = useCrudSchemas(reactive<CrudSchema[]>(
isTableForm: false,
isForm: false,
},
{
label: '供应商代码',
field: 'supplierCode',
sort: 'custom',
isSearch: false,
isDetail: true,
table: {
width: 150,
},
tableForm: {
// isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择供应商',
searchField: 'code',
searchTitle: '供应商信息',
searchAllSchemas: Supplieritem.allSchemas,
searchPage: SupplierItemApi.getSupplieritemPage,
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
},{
key: 'itemCode',
value: 'itemCode',
message: '物料代码不能为空!',
isTableRowValue: true, //查询当前searchTable表中行数据的值
isMainValue:false
}]
}
},
{
label: '供应商名称',
field: 'supplierName',
isForm:true,
isDetail: true,
form:{
componentProps:{
disabled: true
}
},
table: {
width: 180
},
tableForm: {
disabled: true
}
},
{
label: '供应商批次',
field: 'altBatch',
sort: 'custom',
isForm:false,
isSearch: true,
isSearch: false,
table: {
width: 150
},

2
src/views/wms/productionManage/productreceipt/productreceiptRecordMain/index.vue

@ -383,7 +383,7 @@ const tableFormButton = async (val , row) => {
bomModelVisible.value = true
DialogTitle.value = '物料代码【' + row.itemCode + '】——Bom信息'
detatableDataBom.params = {
masterId: row.masterId
number: row.number
}
await getDetailListBom()
}

28
src/views/wms/productionManage/productreceipt/productreceiptRequestMain/productreceiptRequestMain.data.ts

@ -768,7 +768,19 @@ export const ProductreceiptRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
key: 'available',
value: 'TRUE',
isMainValue: false
}],
}, {
key: 'workshopCode',
value: 'workshopCode',
message: '请填写车间代码!',
isMainValue: true
},
// {
// key: 'productionLineCode',
// value: 'productionLineCode',
// message: '请填写生产线代码!',
// isMainValue: true
// }
],
isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据
verificationParams: [{
key: 'code',
@ -793,7 +805,19 @@ export const ProductreceiptRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
key: 'available',
value: 'TRUE',
isMainValue: false
}],
},{
key: 'workshopCode',
value: 'workshopCode',
message: '请填写车间代码!',
isMainValue: true
},
// {
// key: 'productionLineCode',
// value: 'productionLineCode',
// message: '请填写生产线代码!',
// isMainValue: true
// }
],
verificationParams: [{
key: 'code',
action: '==',

2
src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRecordMain/index.vue

@ -423,7 +423,7 @@ const tableFormButton = async (val , row) => {
bomModelVisible.value = true
BomDialogTitle.value = '物料代码【' + row.itemCode + '】——Bom信息'
detatableDataBom.params = {
masterId: row.id
number: row.number
}
await getDetailListBom()
}

29
src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/productreceiptAssembleRequestMain.data.ts

@ -777,7 +777,20 @@ export const ProductreceiptRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
key: 'available',
value: 'TRUE',
isMainValue: false
}],
},
{
key: 'workshopCode',
value: 'workshopCode',
message: '请填写车间代码!',
isMainValue: true
},
// {
// key: 'productionLineCode',
// value: 'productionLineCode',
// message: '请填写生产线代码!',
// isMainValue: true
// }
],
isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据
verificationParams: [{
key: 'code',
@ -802,7 +815,19 @@ export const ProductreceiptRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
key: 'available',
value: 'TRUE',
isMainValue: false
}],
}, {
key: 'workshopCode',
value: 'workshopCode',
message: '请填写车间代码!',
isMainValue: true
},
// {
// key: 'productionLineCode',
// value: 'productionLineCode',
// message: '请填写生产线代码!',
// isMainValue: true
// }
],
verificationParams: [{
key: 'code',
action: '==',

2
src/views/wms/productionManage/productreceiptscrap/productreceiptscrapJobMain/index.vue

@ -120,7 +120,7 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultExportBtn({hasPermi:'wms:productreceipt-job-main:export'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:productreceiptscrap-job-main:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //

2
src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRecordMain/index.vue

@ -139,7 +139,7 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultExportBtn({hasPermi:'wms:productreceipt-record-main:export'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:productreceiptscrap-record-main:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //

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

@ -105,6 +105,7 @@
@handleDeleteTable="handleDeleteTable"
@searchTableSuccess="searchTableSuccess"
@submitForm="submitFormLabel"
@clearInput="clearInputLabel"
/>
<!-- bom列表 -->
@ -151,6 +152,7 @@ import * as PackageApi from '@/api/wms/package'
import { formatTime } from '@/utils/index'
import { getAccessToken } from '@/utils/auth'
import * as BomApi from "@/api/wms/bom";
import {
SupplierdeliverRequestPackage
} from '../../../purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts'
@ -165,6 +167,7 @@ const { loadStart, loadDone } = usePageLoading()
//
defineOptions({ name: 'ProductreceiptRequestMain' })
const message = useMessage() //
const { t } = useI18n() //
@ -288,9 +291,9 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:productreceipt-request-main:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:productreceipt-request-main:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:productreceipt-request-main:export'}), //
defaultButtons.defaultAddBtn({hasPermi:'wms:productreceiptscrap-request-main:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:productreceiptscrap-request-main:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:productreceiptscrap-request-main:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -342,13 +345,13 @@ const butttondata = (row,$index) => {
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']), hasPermi:'wms:productreceipt-request-main:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']), hasPermi:'wms:productreceipt-request-main:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:productreceipt-request-main:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:productreceipt-request-main:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:productreceipt-request-main:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']), hasPermi:'wms:productreceipt-request-main:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:productreceipt-request-main:update'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']), hasPermi:'wms:productreceiptscrap-request-main:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']), hasPermi:'wms:productreceiptscrap-request-main:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:productreceiptscrap-request-main:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:productreceiptscrap-request-main:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:productreceiptscrap-request-main:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']), hasPermi:'wms:productreceiptscrap-request-main:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:productreceiptscrap-request-main:update'}), //
{
label: '创建标签',
name: 'cjbq',
@ -360,7 +363,7 @@ const butttondata = (row,$index) => {
link: true, //
},
defaultButtons.mainListPointBtn({hide:isShowMainButton(row,['3','6','8'])}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:productreceipt-request-main:delete'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:productreceiptscrap-request-main:delete'}), //
]
}
@ -695,6 +698,12 @@ const searchFormClick = (searchData) => {
getList() //
}
const clearInputLabel = (field, row, index) => {
if(field=='secondPackUnit'){
row['secondPackQty'] = ''
}
}
//
const submitFormLabel = async (formType, submitData) => {
let data = {...submitData}
@ -703,12 +712,13 @@ const submitFormLabel = async (formType, submitData) => {
}
let messageList = []
detatableData.tableList.forEach(item=>{
if(item['packUnit'] == item['secondPackUnit']){
if(item['secondPackUnit']&&item['packUnit'] == item['secondPackUnit']){
messageList.push(item['itemCode'])
}
})
if(messageList.length>0){
message.error(`物料${messageList.join(',')}包装规格1和包装规格2不能相同`)
return
}
try {
detatableData.tableList.forEach(async (item) => {

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

@ -777,7 +777,20 @@ export const ProductreceiptRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
key: 'available',
value: 'TRUE',
isMainValue: false
}],
},
{
key: 'workshopCode',
value: 'workshopCode',
message: '请填写车间代码!',
isMainValue: true
},
// {
// key: 'productionLineCode',
// value: 'productionLineCode',
// message: '请填写生产线代码!',
// isMainValue: true
// }
],
verificationParams: [{
key: 'code',
action: '==',
@ -801,7 +814,19 @@ export const ProductreceiptRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
key: 'available',
value: 'TRUE',
isMainValue: false
}],
},{
key: 'workshopCode',
value: 'workshopCode',
message: '请填写车间代码!',
isMainValue: true
},
// {
// key: 'productionLineCode',
// value: 'productionLineCode',
// message: '请填写生产线代码!',
// isMainValue: true
// }
],
verificationParams: [{
key: 'code',
action: '==',
@ -1981,8 +2006,27 @@ export const ProductreceiptRequestLabel = useCrudSchemas(reactive<CrudSchema[]>(
width: 180
},
tableForm: {
disabled: true
},
enterSearch:true,
disabled: true,
isInpuFocusShow: true,
searchListPlaceholder: '请选择包装',
searchField: 'packUnit',
searchTitle: '物品包装信息',
searchAllSchemas: Itempackaging.allSchemas,
searchPage: ItemPackageApi.getItempackagingPageByProductreceipt,
searchCondition: [
{
key: 'itemCode',
value: 'itemCode',
message: '请选择订单行',
isMainValue: true
},
{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
}
},
{
label: '包装数量1',
@ -2074,9 +2118,6 @@ export const ProductreceiptRequestLabel = useCrudSchemas(reactive<CrudSchema[]>(
//表单校验
export const ProductreceiptRequestLabelRules = reactive({
secondPackUnit: [
{ required: true, message: '请选择包装规格2', trigger: 'change' }
],
supplierItemCode: [
{ required: true, message: '请选择供应商', trigger: 'change' }
],

28
src/views/wms/productionManage/productredress/productredressRequestMain/index.vue

@ -59,6 +59,7 @@
@tableSelectionDelete="tableSelectionDelete"
@searchTableSuccess="searchTableSuccess"
@submitForm="submitForm"
@clearSearchInput="clearSearchInput"
/>
<!-- 详情 -->
@ -125,7 +126,21 @@ const route = useRoute() // 路由信息
const routeName = ref()
routeName.value = route.name
const tableColumns = ref([...ProductredressRequestMain.allSchemas.tableColumns,...ProductredressRequestDetail.allSchemas.tableMainColumns])
const clearSearchInput = (field)=>{
console.log('field',field)
if('workshopCode' == field){
//
formRef.value.formRef.setValues({
productionLineCode: '',
workStationCode:'',
})
}else if('productionLineCode' == field){
//线
formRef.value.formRef.setValues({
workStationCode:'',
})
}
}
//
const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
nextTick(() => {
@ -154,6 +169,14 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
} else {
const setV = {}
setV[formField] = val[0][searchField]
if('workshopCode'==formField){
//
setV['productionLineCode'] = ''
setV['workStationCode'] = ''
}else if('productionLineCode'==formField){
//线
setV['workStationCode'] = ''
}
formRef.setValues(setV)
}
})
@ -424,6 +447,9 @@ const submitForm = async (formType, submitData) => {
data.id = data.masterId
}
data.subList = tableData.value //
data.subList.forEach(item=>{
item['workStationCode'] = data['workStationCode']
})
if(data.subList.find(item => (item.qty <= 0))) {
message.warning('数量必须大于0')
formRef.value.formLoading = false

240
src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts

@ -27,8 +27,8 @@ export const ProductredressRequestMainRules = reactive({
workshopCode: [
{ required: true, message: '请选择车间代码', trigger: 'change' }
],
productionLineCode: [
{ required: true, message: '请选择生产线代码', trigger: 'change' }
workStationCode: [
{ required: true, message: '请选择工位代码', trigger: 'change' }
],
})
@ -169,6 +169,84 @@ export const ProductredressRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
{
label: '工位代码',
field: 'workStationCode',
sort: 'custom',
table: {
width: 150
},
isTable: true,
tableForm: {
isInpuFocusShow: true,
searchListPlaceholder: '请选择工位代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '工位信息', // 查询弹窗标题
searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
searchPage: WorkstationApi.getWorkstationPage, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'productionLineCode',
value: 'productionLineCode',
message: '请填写生产线代码!',
isMainValue: true
},
{
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: Workstation.allSchemas, // 查询弹窗所需类
searchPage: WorkstationApi.getWorkstationPage, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'workshopCode',
value: 'workshopCode',
message: '请填写车间代码!',
isMainValue: true
},
{
key: 'productionLineCode',
value: 'productionLineCode',
message: '请填写生产线代码!',
isMainValue: true,
isOptional:true, // isMainValue=true情况,添加参数可选可空的判断
},
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
}
}
},
// {
// label: '车间代码',
// field: 'workshopCode',
@ -417,14 +495,20 @@ export const ProductredressRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
width: 180,
fixed: 'right'
}
}
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
}
},
]))
// 表单校验
export const ProductredressRequestDetailRules = reactive({
workStationCode: [
{ required: true, message: '请选择工位代码', trigger: 'change' }
],
})
export const ProductredressRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
@ -503,6 +587,8 @@ export const ProductredressRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
isFormModel:true, // filters中添加筛选的数据--取于formModel
required:true, // 前置添加必有,和isFormModel结合使用
message: '请选择生产线代码!', // 前置添加没填的提示语
isOptional:true, // isMainValue=true情况,添加参数可选可空的判断
}
]
@ -573,77 +659,77 @@ export const ProductredressRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
}
}
},
{
label: '工位代码',
field: 'workStationCode',
sort: 'custom',
table: {
width: 150
},
isTable: true,
tableForm: {
isInpuFocusShow: true,
searchListPlaceholder: '请选择工位代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '工位信息', // 查询弹窗标题
searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
searchPage: WorkstationApi.getWorkstationPage, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'productionLineCode',
value: 'productionLineCode',
message: '请填写生产线代码!',
isMainValue: true
},
{
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: Workstation.allSchemas, // 查询弹窗所需类
searchPage: WorkstationApi.getWorkstationPage, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'productionLineCode',
value: 'productionLineCode',
message: '请填写生产线代码!',
isMainValue: true
},
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
}
}
},
// {
// label: '工位代码',
// field: 'workStationCode',
// sort: 'custom',
// table: {
// width: 150
// },
// isTable: true,
// tableForm: {
// isInpuFocusShow: true,
// searchListPlaceholder: '请选择工位代码', // 输入框占位文本
// searchField: 'code', // 查询弹窗赋值字段
// searchTitle: '工位信息', // 查询弹窗标题
// searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
// searchPage: WorkstationApi.getWorkstationPage, // 查询弹窗所需分页方法
// searchCondition: [
// {
// key: 'productionLineCode',
// value: 'productionLineCode',
// message: '请填写生产线代码!',
// isMainValue: true
// },
// {
// 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: Workstation.allSchemas, // 查询弹窗所需类
// searchPage: WorkstationApi.getWorkstationPage, // 查询弹窗所需分页方法
// searchCondition: [
// {
// key: 'productionLineCode',
// value: 'productionLineCode',
// message: '请填写生产线代码!',
// isMainValue: true
// },
// {
// key: 'available',
// value: 'TRUE',
// isMainValue: false
// }
// ],
// verificationParams: [{
// key: 'code',
// action: '==',
// value: '',
// isMainValue: false,
// isSearch: true,
// isFormModel: true,
// }], // 失去焦点校验参数
// }
// }
// },
{
label: '包装号',
field: 'packingNumber',

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

@ -62,6 +62,7 @@
@inputNumberChange="inputNumberChange"
@submitForm="submitForm"
@buttonOperationClick="buttonOperationClick"
@clearSearchInput="clearSearchInput"
/>
<!-- 详情 -->
@ -92,7 +93,7 @@
@success="getList"
:tableAllSchemas="ProdcutscrapBomScrap.allSchemas"
:tableFormRules="ProdcutscrapBomScrapRules"
:tableData="detatableDataBom.tableList"
:tableData="bomTableList"
:isBusiness="true"
:isShowButton="false"
:isShowReduceButton="false"
@ -105,8 +106,19 @@
:footButttondata="footButttondata"
@footButtonClick="buttonBaseClickBom"
@formSelectChange="formSelectChange"
/>
>
<template #TableFormHead>
<el-form inline>
<el-form-item label="物料代码">
<el-input v-model="bomSearchData" @input="bomSearchData = bomSearchData.replace(/,/g, ',')" clearable placeholder="请输入物料代码"/>
</el-form-item>
<el-form-item>
<el-button type="info" plain @click="bomSearchClick"><Icon class="mr-5px" icon="ep:search" />{{ t('common.query') }}</el-button>
</el-form-item>
</el-form>
</template>
</BasicForm>
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/productscrap-request-main/import" :importTemplateData="importTemplateData"
@ -233,6 +245,18 @@ const buttonBaseClickBom = (val) => {
detailBomRef.value.dialogVisible = false
}
}
const bomTableList = ref<any[]>([])
const bomSearchData = ref('')
const bomSearchClick = ()=>{
if(!bomSearchData.value){
bomTableList.value = detatableDataBom.tableList
}else{
let itemCodes = bomSearchData.value.split(',')
console.log('itemCodes',itemCodes)
bomTableList.value = detatableDataBom.tableList.filter(item=>itemCodes.indexOf(item['itemCode'])>-1)
}
}
const banchBomPage = async (fromLocationCode,item) => {
const params = {
location_code:fromLocationCode,
@ -248,7 +272,18 @@ const banchBomPage = async (fromLocationCode,item) => {
return obj
}
const clearSearchInput = (formField) => {
if(formField=='workshopCode'){
//
formRef.value.formRef.setValues({
productionLineCode:'',//线
})
tableData.value = []
}else if(formField=='productionLineCode'){
//线
tableData.value = []
}
}
// tableform
const buttonOperationClick = async (row, label, index,isSave = false)=> {
console.log('buttonOperationClick',row, label, index)
@ -272,6 +307,7 @@ const buttonOperationClick = async (row, label, index,isSave = false)=> {
detatableDataBom.params.fromLocationCode = row.fromLocationCode
await getDetailListBom()
bomTableList.value = detatableDataBom.tableList
console.log(row.fromLocationCode);
detatableDataBom.tableList.forEach(async (item) => {
console.log(333,item)
@ -317,6 +353,8 @@ const buttonOperationClick = async (row, label, index,isSave = false)=> {
item.tableForm.disabled = false
}
})
bomSearchData.value = ''
bomTableList.value = detatableDataBom.tableList
detailBomRef.value.open('create', row, null,'viewDetail')//
}
}
@ -330,6 +368,7 @@ const handleDeleteTableBom = (item, index) => {
if (itemIndex > -1) {
detatableDataBom.tableList.splice(itemIndex, 1)
}
bomSearchClick()
}
const tableSelectionDeleteBom = (selection) => {
@ -340,6 +379,8 @@ const tableSelectionDeleteBom = (selection) => {
detatableDataBom.tableList = detatableDataBom.tableList.filter(item => !selection.includes(item))
bomSearchClick()
}
@ -369,6 +410,7 @@ const tableFormButton = async (val , row) => {
detailQty.value = row.qty
detatableDataBom.params.isRecord = true
await getDetailListBom()
bomTableList.value = detatableDataBom.tableList
//
isShowFooterButtton.value = false
isShowReduceButtonSelection.value = false

15
src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue

@ -188,6 +188,7 @@ const butttondata = (row,$index) => {
return [
defaultButtons.mainInspectRequestBtn({hasPermi:'wms:purchasereceipt-record-main:createInspectRequest',hide:row.inspectRequestFlag == "FALSE" }),//
defaultButtons.mainPutawayRequestBtn({hasPermi:'wms:purchasereceipt-record-main:createPutawayRequest',hide:row.putawayRequestFlag == "FALSE" }),//
defaultButtons.mainPurchasereturnRecordBtn({hasPermi:'wms:purchasereceipt-record-main:createPurchasereturnRecord',hide:row.purchasereturnRecordFlag == "FALSE" }),// 退
//defaultButtons.mainListPlanCheckQualityReportBtn({hide:row.orderTypeM == "2"}), //
defaultButtons.mainListPlanCheckQualityReportBtn({hide:isShowSourceTypeButton(row)}), //
defaultButtons.mainListPrintInspectionBtn({hide:routeName.value.includes('SCP')})
@ -200,6 +201,8 @@ const buttonTableClick = async (val, row) => {
handleCreatePutawayRequest(row.number)
}else if(val == 'inspectRequest'){//
handleCreateInspectRequest(row.number)
}else if(val == 'purchasereturnRecord'){//退
handleCreatePurchasereturnRecord(row.number)
}else if(val == 'mainPlanCheckQualityReport'){
//
checkQualityReport(row)
@ -262,6 +265,18 @@ const handleCreateInspectRequest = async (number:string) => {
}
}
/** 生成采购退货记录按钮操作 */
const handleCreatePurchasereturnRecord = async (number:string) => {
try{
await message.confirm(t('ts.确认生成采购退货记录吗?'))
tableObject.loading = true
await PurchasereceiptRecordMainApi.createPurchasereturnRecord(number)
message.success(t('ts.采购退货记录生成成功'))
buttonBaseClick('refresh',null)
}catch{}finally{
tableObject.loading = false
}
}
//
const detailParenPackingRef = ref()

4
src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMOrderTypeMain/index.vue

@ -143,7 +143,7 @@ const butttondata = (row,$index) => {
const buttonTableClick = async (val, row) => {
if (val == 'documentPrint') {
//
handleDocumentPrint(row.requestNumber,row.itemCode)
handleDocumentPrint(row.number,row.itemCode)
}
}
@ -151,7 +151,7 @@ const buttonTableClick = async (val, row) => {
const BASE_URL = getJmreportBaseUrl()
const documentSrc = ref(BASE_URL + '/jmreport/view/920874172025987072?token=' + getAccessToken())
const handleDocumentPrint = async (requestNumber,itemCode) => {
window.open(documentSrc.value + '&requestNumber=' + requestNumber +'&itemCode=' + itemCode)
window.open(documentSrc.value + '&requestNumber=' + requestNumber +'&itemCode=' + itemCode + '&reqType=record')
}
//
const { wsCache } = useCache()

4
src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue

@ -143,7 +143,7 @@ const butttondata = (row,$index) => {
const buttonTableClick = async (val, row) => {
if (val == 'documentPrint') {
//
handleDocumentPrint(row.requestNumber,row.itemCode)
handleDocumentPrint(row.number,row.itemCode)
}
}
@ -151,7 +151,7 @@ const buttonTableClick = async (val, row) => {
const BASE_URL = getJmreportBaseUrl()
const documentSrc = ref(BASE_URL + '/jmreport/view/920874172025987072?token=' + getAccessToken())
const handleDocumentPrint = async (requestNumber,itemCode) => {
window.open(documentSrc.value + '&requestNumber=' + requestNumber +'&itemCode=' + itemCode)
window.open(documentSrc.value + '&requestNumber=' + requestNumber +'&itemCode=' + itemCode + '&reqType=record')
}
//
const { wsCache } = useCache()

2
src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/index.vue

@ -637,7 +637,7 @@ const buttonTableClick = async (val, row) => {
const BASE_URL2 = getJmreportBaseUrl()
const documentSrc = ref(BASE_URL2 + '/jmreport/view/920874172025987072?token=' + getAccessToken())
const handleDocumentPrint = async (number,itemCode) => {
window.open(documentSrc.value + '&requestNumber=' + number +'&itemCode=' + itemCode)
window.open(documentSrc.value + '&requestNumber=' + number +'&itemCode=' + itemCode+'&reqType=request')
}
/** 添加/修改操作 */

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

@ -623,7 +623,7 @@ const buttonTableClick = async (val, row) => {
const BASE_URL2 = getJmreportBaseUrl()
const documentSrc = ref(BASE_URL2 + '/jmreport/view/920874172025987072?token=' + getAccessToken())
const handleDocumentPrint = async (number,itemCode) => {
window.open(documentSrc.value + '&requestNumber=' + number +'&itemCode=' + itemCode)
window.open(documentSrc.value + '&requestNumber=' + number +'&itemCode=' + itemCode + '&reqType=request')
}
/** 添加/修改操作 */

2
src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMainNew/index.vue

@ -539,7 +539,7 @@ const buttonTableClick = async (val, row) => {
const BASE_URL2 = getJmreportBaseUrl()
const documentSrc = ref(BASE_URL2 + '/jmreport/view/920874172025987072?token=' + getAccessToken())
const handleDocumentPrint = async (number,itemCode) => {
window.open(documentSrc.value + '&requestNumber=' + number +'&itemCode=' + itemCode)
window.open(documentSrc.value + '&requestNumber=' + number +'&itemCode=' + itemCode + '&reqType=request')
}
/** 添加/修改操作 */

4
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/index.vue

@ -286,7 +286,9 @@ const buttonTableClick = async (val, row) => {
nextTick(()=>{
basicFormRef.value.formRef.setValues({
reversepostingdate:dayjs().valueOf(),
tcCInvoiceRemark:`回转${row['supplierName']}发票 ${row['goldenTaxInvoiceNumber']}`
// tcCInvoiceRemark:`${row['supplierName']} ${row['goldenTaxInvoiceNumber']}`
tcCInvoiceRemark:`冲销凭证${row['voucherNumber']}`
})
})

1
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/supplierinvoiceRecordMain.data.ts

@ -1819,6 +1819,7 @@ export const SupplierinvoiceRecordMainTransfer = useCrudSchemas(reactive<CrudSch
isDetail:false,
form: {
componentProps: {
style: { 'padding-bottom': '20px'},
type:"textarea",
maxlength:50,
showWordLimit:true

Loading…
Cancel
Save