diff --git a/.env.prod b/.env.prod index be6b9a31d..06f2aa7cc 100644 --- a/.env.prod +++ b/.env.prod @@ -48,3 +48,7 @@ VITE_SYSTERM_UPDATE_URL = 'https://scptest.faway-hella.com/' # 是否需要验证码 VITE_NEED_CODE = true + + +# 是否需要下载PDA链接 +VITE_PDA_URL = false diff --git a/.env.test b/.env.test index c58a58c21..cb687a764 100644 --- a/.env.test +++ b/.env.test @@ -44,3 +44,7 @@ VITE_REPORT_URL = 'http://dev.ccwin-in.com:25400' # 是否需要验证码 VITE_NEED_CODE = true + + +# 是否需要下载PDA链接 +VITE_PDA_URL = true \ No newline at end of file diff --git a/.env.test-scp b/.env.test-scp index 8bb0eb982..218728c32 100644 --- a/.env.test-scp +++ b/.env.test-scp @@ -45,3 +45,6 @@ VITE_REPORT_URL = 'http://dev.ccwin-in.com:25400' # 是否需要验证码 VITE_NEED_CODE = false + +# 是否需要下载PDA链接 +VITE_PDA_URL = false diff --git a/README.md b/README.md index d73d0dd7b..eadbc6402 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ dictType: DICT_TYPE.INVENTORY_STATUS, dictClass: 'string', dictAllOption:true,// true 字典中--下拉框中展示全选按钮 dictAllValue:'全选', // 全选按钮的value值 +hiddenSearchHigh?: boolean // 是否隐藏高级筛选 + **form表单查询弹窗配置** form: { labelMessage: '信息提示说明!!!', diff --git a/public/systemConfig.js b/public/systemConfig.js index cd2f48d94..394209322 100644 --- a/public/systemConfig.js +++ b/public/systemConfig.js @@ -13,5 +13,8 @@ let systemConfig = { tenant: '["成都"]', systermUpdateAlert: true, systermUpdateUrl: 'https://scptest.faway-hella.com/', - needCode:false + //是否需要验证码 + needCode:false, + //是否需要PDA下载链接 + pdaUrl:false, } diff --git a/src/api/system/password/index.ts b/src/api/system/password/index.ts index cc2495169..9f07574cc 100644 --- a/src/api/system/password/index.ts +++ b/src/api/system/password/index.ts @@ -23,3 +23,7 @@ export const setConfig = (data: PassWordConfigVO) => { export const getRuleList = () => { return request.get({ url: '/system/password/getRuleList'}) } +// 验证密码是否过期 +export const validateResetTime = (userId:number) => { + return request.get({ url: '/system/password/validateResetTime?userId=' + userId}) +} diff --git a/src/api/wms/balance/index.ts b/src/api/wms/balance/index.ts index 04afc0293..af60eb822 100644 --- a/src/api/wms/balance/index.ts +++ b/src/api/wms/balance/index.ts @@ -42,6 +42,16 @@ export const getBalancePage = async (params) => { } } +export const getTransactionBalancePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transaction/senior', data }) + } else { + return await request.get({ url: `/wms/transaction/page_balance`, params }) + } +} + // 查询库存余额列表(包括已冻结,已失效的物料) export const getBalancePageAll = async (params) => { if (params.isSearch) { @@ -218,4 +228,9 @@ export const getBalanceItemListByCodes = async (data) => { // 查询bom批次默认数据 export const getBanchBomPage = async (params) => { return await request.get({ url: `/wms/balance/pageBOM`, params }) -} \ No newline at end of file +} + +// 查询 +export const getAllBalancePage = async (params) => { + return await request.get({ url: `/wms/balance/getBalancePageAll `, params }) +} diff --git a/src/api/wms/inventorymoveRequestMain/index.ts b/src/api/wms/inventorymoveRequestMain/index.ts index 68784d189..f7bfa0704 100644 --- a/src/api/wms/inventorymoveRequestMain/index.ts +++ b/src/api/wms/inventorymoveRequestMain/index.ts @@ -129,11 +129,13 @@ export const exportScrapToHoldRequestMain = async (params) => { } // 下载用户导入模板 +// 下载用户导入模板(除库存移动外) export const importTemplate = () => { return request.download({ url: '/wms/inventorymove-request-main/get-import-template' }) } - -// 下载用户导入模板(除库存移动外) +export const importTemplateHoldOk = () => { + return request.download({ url: '/wms/inventorymove-request-main/get-import-template-hold-ok' }) +} export const importTemplateExceptMove = () => { return request.download({ url: '/wms/inventorymove-request-main/get-import-template-exceptMove' }) } diff --git a/src/api/wms/rawMaterialConsumptionInfo/index.ts b/src/api/wms/rawMaterialConsumptionInfo/index.ts index 477158e1f..6acc4feef 100644 --- a/src/api/wms/rawMaterialConsumptionInfo/index.ts +++ b/src/api/wms/rawMaterialConsumptionInfo/index.ts @@ -54,4 +54,8 @@ export const exportAssemblyMaterialUsage = async (params) => { } +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/backflush-record-detailb/get-import-template-error' }) +} diff --git a/src/components/DictTag/src/DictTag.vue b/src/components/DictTag/src/DictTag.vue index 947f5037f..1461d9d94 100644 --- a/src/components/DictTag/src/DictTag.vue +++ b/src/components/DictTag/src/DictTag.vue @@ -47,7 +47,7 @@ export default defineComponent({ if (dictDataList.length == 0) { if(dictData.value?.label !== '' && dictData.value?.label !== undefined){ return ( { return (item.field != "action"))) +const searchOption_high = ref(props.allSchemas?.tableColumns.filter(item => (item.field != "action"&&!item.hiddenSearchHigh))) const moreListData = ref({ filters:[] }) diff --git a/src/components/Verifition/src/Verify/VerifySlide.vue b/src/components/Verifition/src/Verify/VerifySlide.vue index 33ed40ab0..eda3f61c8 100644 --- a/src/components/Verifition/src/Verify/VerifySlide.vue +++ b/src/components/Verifition/src/Verify/VerifySlide.vue @@ -410,4 +410,5 @@ const getPictrue = async () => { // tipWords.value = res.repMsg // } } +defineExpose({ refresh }) diff --git a/src/hooks/web/useCrudSchemas.ts b/src/hooks/web/useCrudSchemas.ts index 5f6c183f9..914091ff4 100644 --- a/src/hooks/web/useCrudSchemas.ts +++ b/src/hooks/web/useCrudSchemas.ts @@ -14,6 +14,7 @@ import { cloneDeep, merge } from 'lodash-es' export type CrudSchema = Omit & { isSearch?: boolean // 是否在查询显示 + hiddenSearchHigh?: boolean // 是否隐藏高级筛选 search?: CrudSearchParams // 查询的详细配置 isTable?: boolean // 是否在列表显示 table?: CrudTableParams // 列表的详细配置 diff --git a/src/utils/systemParam.ts b/src/utils/systemParam.ts index 3341cd539..9cb51bf51 100644 --- a/src/utils/systemParam.ts +++ b/src/utils/systemParam.ts @@ -7,6 +7,7 @@ const tenant = ref(import.meta.env.VITE_TENANT) const systermUpdateAlert = ref(import.meta.env.VITE_SYSTERM_UPDATE_ALERT) const systermUpdateUrl = ref(import.meta.env.VITE_SYSTERM_UPDATE_URL) const needCode = ref(import.meta.env.VITE_NEED_CODE) +const pdaUrl = ref(import.meta.env.VITE_PDA_URL) const mode = ref(import.meta.env.MODE) // 获取baseUrl @@ -85,4 +86,13 @@ export const getNeedCode = () => { } } +//是否需要PDA下载链接 +export const getPDAUrl = () => { + if(mode.value === 'prod') { + return systemConfig.pdaUrl + } else { + return pdaUrl.value + } +} + diff --git a/src/views/login/components/LoginForm.vue b/src/views/login/components/LoginForm.vue index f9b31784c..578cd990c 100644 --- a/src/views/login/components/LoginForm.vue +++ b/src/views/login/components/LoginForm.vue @@ -74,6 +74,7 @@ + @@ -82,13 +83,13 @@ import { ElLoading } from 'element-plus' import LoginFormTitle from './LoginFormTitle.vue' import type { RouteLocationNormalizedLoaded } from 'vue-router' - import { Verify } from '@/components/Verifition' import { useIcon } from '@/hooks/web/useIcon' import * as authUtil from '@/utils/auth' import { usePermissionStore } from '@/store/modules/permission' import * as LoginApi from '@/api/login' + import * as PassWordApi from '@/api/system/password' import { LoginStateEnum, useFormValid, useLoginState } from './useLogin' import { getCodeImg } from "@/api/login"; import router from "@/router"; @@ -96,6 +97,9 @@ import * as DeptApi from '@/api/system/dept' import { getTenant } from '@/utils/systemParam' import { getSystermUpdateAlert,getSystermUpdateUrl,getNeedCode } from '@/utils/systemParam' + import {validateResetTime} from "@/api/system/password"; + import { Verify } from '@/components/Verifition' + const needCode = ref(getNeedCode()==true||getNeedCode()=='true') defineOptions({ name: 'LoginForm' }) @@ -180,6 +184,7 @@ } } function getCode() { + console.log('getCode') if(!needCode.value){ return } @@ -218,35 +223,29 @@ name: 'ForgetPassword', }) }; - // 滑块校验成功 - const capctchaCheckSuccess = ({captchaVerification})=>{ + const capctchaCheckSuccess = async ({captchaVerification})=>{ console.log('capctchaCheckSuccess',captchaVerification) - loginData.loginForm.code = captchaVerification - handleLogin() + if(captchaVerification){ + loginData.loginForm.code = captchaVerification + await handleLogin() + } } // 滑块校验失败 const capctchaCheckError = ()=>{ - VerifySlide.value.refresh() + console.log('capctchaCheckError') } + const loading = ref() // ElLoading.service 返回的实例 // 登录 const handleLogin = async () => { console.log('登录-185') - if(getSystermUpdateAlert()=='true'||getSystermUpdateAlert()===true){ - await ElMessageBox.alert( - '系统迁移,请移步至' + - `${getSystermUpdateUrl()}`, - '重要提示', - { - dangerouslyUseHTMLString: true, - } - ) - } loginLoading.value = true + try { await getTenantId() + const data = await validForm() if (!data) { return @@ -257,6 +256,21 @@ }else{ res = await LoginApi.login(loginData.loginForm) } + + console.log('登陆res',res) + try{ + await PassWordApi.validateResetTime(res.userId) + }catch (e) { + if (e.code === 1002000010) { + await ElMessageBox.alert( + '密码长时间未修改,存在安全隐患,请及时修改', + '重要提示', + { + dangerouslyUseHTMLString: true, + } + ) + } + } if (!res) { console.log('登录-195') getCode() @@ -273,6 +287,16 @@ authUtil.removeLoginForm() } authUtil.setToken(res) + if(getSystermUpdateAlert()=='true'||getSystermUpdateAlert()===true){ + await ElMessageBox.alert( + '系统迁移,请移步至' + + `${getSystermUpdateUrl()}`, + '重要提示', + { + dangerouslyUseHTMLString: true, + } + ) + } if (!redirect.value) { redirect.value = '/' } @@ -286,20 +310,13 @@ // 存储 部门信息 const { wsCache } = useCache() wsCache.set(CACHE_KEY.DEPT, await DeptApi.getSimpleDeptList()) - }catch (e) { - if(e.code === 1002000010){ - setTimeout(function (){ - router.push({path:"/updatePasswordNewTips",query:{username:loginData.loginForm.username}}) - },3000) - } - } finally { + }finally { console.log('登录-224') - getCode() loginLoading.value = false loading?.value?.close() + getCode() } } - // 社交登录 const doSocialLogin = async (type : number) => { if (type === 0) { diff --git a/src/views/login/components/QRCodePDA.vue b/src/views/login/components/QRCodePDA.vue index 2b28194b0..d8d3b05fc 100644 --- a/src/views/login/components/QRCodePDA.vue +++ b/src/views/login/components/QRCodePDA.vue @@ -5,14 +5,18 @@ - PDA安装程序下载链接 + PDA安装程序下载链接 diff --git a/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue b/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue index 2fbbba948..e84101374 100644 --- a/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue +++ b/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue @@ -80,6 +80,9 @@ :buttondataTable="buttondataTable" @tableFormButton="tableFormButton" :detailValidate="detailValidate" + :detailButtonIsShowAdd="false" + :detailButtonIsShowEdit="false" + :detailButtonIsShowDelete="false" /> @@ -688,6 +691,11 @@ const openForm =async (type: string, row?: number) => { if (item.field == 'scrappingReason'){ item.value = '' } + if(item.field == 'productionLineCode'){ + item.componentProps.disabled = false + item.componentProps.enterSearch = true + item.componentProps.isSearchList = true + } }) } if(type == 'update'){ @@ -696,6 +704,15 @@ const openForm =async (type: string, row?: number) => { item.componentProps.disabled = true item.componentProps.isSearchList = false } + if(item.field == 'productionLineCode'){ + item.componentProps.enterSearch = true + item.componentProps.isSearchList = true + } + if(item.field == 'productionLineCode'){ + item.componentProps.disabled = true + item.componentProps.enterSearch = false + item.componentProps.isSearchList = false + } }) } formRef.value.open(type, row) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue index 1cd0b5de0..159506e85 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue @@ -375,4 +375,7 @@ const changeTabs = (data) =>{ onMounted(async () => { getList() }) +onActivated(() => { + getList() +}) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue index 9837f1fa4..6cbcc8d51 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue @@ -171,6 +171,7 @@ import { getReportUrl } from '@/utils/systemParam' import { usePageLoading } from '@/hooks/web/usePageLoading' const { loadStart, loadDone } = usePageLoading() // 采购收货申请-M类型收货 +// M类型采购收货 defineOptions({ name: 'PurchasereceiptRequestOrderMTypeMain' }) const message = useMessage() // 消息弹窗 @@ -536,7 +537,7 @@ const getSearchTableData = async (number,isEnter=false)=>{ }) tableData.value = [] if(tableObject.tableList.length==0){ - message.error(`此订单${number}已存在M类型申请的数据`) + message.error(`此订单【${number}】暂无满足条件的收货明细`) return } updateTableData(tableObject.tableList) diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/purchasereturnJobMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/purchasereturnJobMain.data.ts index b68f7d8cb..af7e7444e 100644 --- a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/purchasereturnJobMain.data.ts +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/purchasereturnJobMain.data.ts @@ -1008,7 +1008,7 @@ export const PurchasereturnJobDetail = useCrudSchemas(reactive([ field: 'reason', dictType: DICT_TYPE.PURCHASE_RETURN_REASON, dictClass: 'string', - isTable: true, + isTable: false, sort: 'custom', table: { width: 150 diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue index b32e4d42e..48e60e3f1 100644 --- a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue @@ -197,4 +197,7 @@ const searchFormClick = (searchData) => { onMounted(async () => { getList() }) +onActivated(() => { + getList() +}) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue index 9db63afdf..d36758d0f 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue @@ -122,7 +122,10 @@ const { tableObject, tableMethods } = useTable({ // 获得表格的各种操作 const { getList, setSearchParams } = tableMethods - +watch(()=>tableObject.currentPage,async ()=>{ + tableObjectHead.currentPage = tableObject.currentPage + updateDateTableColumns() +}) // 列表头部按钮 const HeadButttondata = [ defaultButtons.defaultExportBtn({hasPermi:'wms:demandforecasting-main:export'}), // 导出 diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/index.vue index e2a1bf390..49eb20d07 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/index.vue +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/index.vue @@ -130,7 +130,10 @@ const { tableObject, tableMethods } = useTable({ // 获得表格的各种操作 const { getList, setSearchParams } = tableMethods - +watch(()=>tableObject.currentPage,async ()=>{ + tableObjectHead.currentPage = tableObject.currentPage + updateDateTableColumns() +}) // 列表头部按钮 const HeadButttondata = [ defaultButtons.defaultExportBtn({hasPermi:'wms:demandforecasting-main:export'}), // 导出 diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts index 2bac465f9..f44468c43 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts @@ -568,66 +568,66 @@ export const PurchasePlanDetail = useCrudSchemas(reactive([ } } }, - { - label: '订单号', - field: 'poNumber', - sort: 'custom', - table: { - width: 180 - }, - hiddenInMain:true, - isTableForm:false, - tableForm: { - disabled: true, - isInpuFocusShow: false, - searchListPlaceholder: '请选择订单号', - searchField: 'number', - searchTitle: '采购订单信息', - searchAllSchemas: PurchaseMain.allSchemas, - searchPage: PurchaseMainApi.getPurchaseMainPage, - searchCondition: [{ - key: 'available', - value: 'TRUE', - isMainValue: false - }, { - key: 'supplierCode', - value: 'supplierCode', - message: '请填写供应商代码!', - isMainValue: true - }, { - key: 'status', - value: 2, - isMainValue: false - } - ] - }, - form: { - // labelMessage: '信息提示说明!!!', - componentProps: { - disabled: true, - isSearchList: false, - searchListPlaceholder: '请选择订单号', - searchField: 'number', - searchTitle: '采购订单信息', - searchAllSchemas: PurchaseMain.allSchemas, - searchPage: PurchaseMainApi.getPurchaseMainPage, - searchCondition: [{ - key: 'available', - value: 'TRUE', - isMainValue: false - },{ - key: 'supplierCode', - value: 'supplierCode', - message: '请填写供应商代码!', - isMainValue: true - },{ - key: 'status', - value: 2, - isMainValue: false - }] - } - } - }, + // { + // label: '订单号', + // field: 'poNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain:true, + // isTableForm:false, + // tableForm: { + // disabled: true, + // isInpuFocusShow: false, + // searchListPlaceholder: '请选择订单号', + // searchField: 'number', + // searchTitle: '采购订单信息', + // searchAllSchemas: PurchaseMain.allSchemas, + // searchPage: PurchaseMainApi.getPurchaseMainPage, + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // }, { + // key: 'supplierCode', + // value: 'supplierCode', + // message: '请填写供应商代码!', + // isMainValue: true + // }, { + // key: 'status', + // value: 2, + // isMainValue: false + // } + // ] + // }, + // form: { + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // disabled: true, + // isSearchList: false, + // searchListPlaceholder: '请选择订单号', + // searchField: 'number', + // searchTitle: '采购订单信息', + // searchAllSchemas: PurchaseMain.allSchemas, + // searchPage: PurchaseMainApi.getPurchaseMainPage, + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // },{ + // key: 'supplierCode', + // value: 'supplierCode', + // message: '请填写供应商代码!', + // isMainValue: true + // },{ + // key: 'status', + // value: 2, + // isMainValue: false + // }] + // } + // } + // }, { label: '计划数量', field: 'planQty', diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/index.vue index b8e88cc6f..cb270d6c0 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/index.vue +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/index.vue @@ -306,4 +306,7 @@ const searchFormClick = (searchData) => { onMounted(async () => { getList() }) +onActivated(() => { + getList() +}) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue index 83576b36d..0abaf2495 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue @@ -100,7 +100,19 @@