Browse Source

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

hella_online_20240913
ljlong_2630 2 months ago
parent
commit
bbd7c68619
  1. 4
      .env.prod
  2. 4
      .env.test
  3. 3
      .env.test-scp
  4. 2
      README.md
  5. 5
      public/systemConfig.js
  6. 4
      src/api/system/password/index.ts
  7. 17
      src/api/wms/balance/index.ts
  8. 6
      src/api/wms/inventorymoveRequestMain/index.ts
  9. 4
      src/api/wms/rawMaterialConsumptionInfo/index.ts
  10. 4
      src/components/DictTag/src/DictTag.vue
  11. 2
      src/components/SearchHigh/src/SearchHigh.vue
  12. 1
      src/components/Verifition/src/Verify/VerifySlide.vue
  13. 1
      src/hooks/web/useCrudSchemas.ts
  14. 10
      src/utils/systemParam.ts
  15. 67
      src/views/login/components/LoginForm.vue
  16. 6
      src/views/login/components/QRCodePDA.vue
  17. 2
      src/views/qms/inspectionJob/detail.vue
  18. 225
      src/views/qms/inspectionQ2/index.vue
  19. 8
      src/views/qms/inspectionQ2/inspectionQ2.data.ts
  20. 4
      src/views/qms/inspectionQ3/index.vue
  21. 28
      src/views/qms/inspectionQ3/inspectionQ3.data.ts
  22. 2
      src/views/qms/inspectionScheme/detail.vue
  23. 53
      src/views/wms/agvManage/backflushDetailbQad/backflushDetailbQad.data.ts
  24. 22
      src/views/wms/agvManage/backflushDetailbQad/index.vue
  25. 1
      src/views/wms/basicDataManage/itemManage/bom/index.vue
  26. 1
      src/views/wms/basicDataManage/itemManage/itembasic/index.vue
  27. 1
      src/views/wms/basicDataManage/itemManage/packageunit/index.vue
  28. 1
      src/views/wms/basicDataManage/itemManage/productionitemcodeSpareitemcode/index.vue
  29. 6
      src/views/wms/basicDataManage/strategySetting/strategy/arrivalInspectionStrategy/AddForm.vue
  30. 12
      src/views/wms/basicDataManage/strategySetting/strategy/batchStrategy/AddForm.vue
  31. 22
      src/views/wms/basicDataManage/strategySetting/strategy/downShelfStrategy/AddForm.vue
  32. 8
      src/views/wms/basicDataManage/strategySetting/strategy/inspectStrategy/AddForm.vue
  33. 6
      src/views/wms/basicDataManage/strategySetting/strategy/purchaseReceiptStrategy/AddForm.vue
  34. 12
      src/views/wms/basicDataManage/strategySetting/strategy/storageCapacityStrategy/AddForm.vue
  35. 8
      src/views/wms/basicDataManage/strategySetting/strategy/supplieDeliveryStrategy/AddForm.vue
  36. 26
      src/views/wms/basicDataManage/strategySetting/strategy/upShelfStrategy/AddForm.vue
  37. 11
      src/views/wms/basicDataManage/strategySetting/strategy/utensilCapacityStrategy/AddForm.vue
  38. 5
      src/views/wms/basicDataManage/strategySetting/strategy/warehouseStorageStrategy/AddForm.vue
  39. 37
      src/views/wms/basicDataManage/supplierManage/supplieritem/index.vue
  40. 26
      src/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data.ts
  41. 192
      src/views/wms/inventoryManage/balance/balance.data.ts
  42. 40
      src/views/wms/inventoryManage/balance/index.vue
  43. 80
      src/views/wms/inventoryjobManage/scrap/scrapJobMain/scrapJobMain.data.ts
  44. 59
      src/views/wms/inventoryjobManage/scrap/scrapRecordMain/scrapRecordMain.data.ts
  45. 74
      src/views/wms/inventoryjobManage/scrap/scrapRequestMain/scrapRequestMain.data.ts
  46. 22
      src/views/wms/inventoryjobManage/unplannedissue/unplannedissueJobMain/unplannedissueJobMain.data.ts
  47. 1
      src/views/wms/inventoryjobManage/unplannedissue/unplannedissueRequestMain/unplannedissueRequestMain.data.ts
  48. 1
      src/views/wms/inventoryjobManage/unplannedreceipt/unplannedreceiptRequestMain/index.vue
  49. 1
      src/views/wms/inventoryjobManage/unplannedreceipt/unplannedreceiptRequestMain/unplannedreceiptRequestMain.data.ts
  50. 8
      src/views/wms/moveManage/inventorymove/inventorymoveJobMain/inventorymoveJobMain.data.ts
  51. 8
      src/views/wms/moveManage/inventorymove/inventorymoveRecordMain/inventorymoveRecordMain.data.ts
  52. 34
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue
  53. 24
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMainMOVE/index.vue
  54. 77
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOKHOLD/index.vue
  55. 18
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOKHOLD/inventorymoveRequestMain.data.ts
  56. 24
      src/views/wms/productionManage/productreceiptAssemble/rawMaterialConsumptionInfo/index.vue
  57. 17
      src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue
  58. 3
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue
  59. 3
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue
  60. 2
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/purchasereturnJobMain.data.ts
  61. 3
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue
  62. 5
      src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue
  63. 5
      src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/index.vue
  64. 120
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts
  65. 3
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/index.vue
  66. 14
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue
  67. 3
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts
  68. 6
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/index.vue
  69. 2
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/supplierinvoiceRecordMain.data.ts
  70. 31
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue
  71. 15
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts
  72. 6
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMainDifference/index.vue
  73. 4
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMainDifference/supplierinvoiceRequestMainDifference.data.ts

4
.env.prod

@ -48,3 +48,7 @@ VITE_SYSTERM_UPDATE_URL = 'https://scptest.faway-hella.com/'
# 是否需要验证码
VITE_NEED_CODE = true
# 是否需要下载PDA链接
VITE_PDA_URL = false

4
.env.test

@ -44,3 +44,7 @@ VITE_REPORT_URL = 'http://dev.ccwin-in.com:25400'
# 是否需要验证码
VITE_NEED_CODE = true
# 是否需要下载PDA链接
VITE_PDA_URL = true

3
.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

2
README.md

@ -5,6 +5,8 @@ dictType: DICT_TYPE.INVENTORY_STATUS,
dictClass: 'string',
dictAllOption:true,// true 字典中--下拉框中展示全选按钮
dictAllValue:'全选', // 全选按钮的value值
hiddenSearchHigh?: boolean // 是否隐藏高级筛选
**form表单查询弹窗配置**
form: {
labelMessage: '信息提示说明!!!',

5
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,
}

4
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})
}

17
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 })
}
}
// 查询
export const getAllBalancePage = async (params) => {
return await request.get({ url: `/wms/balance/getBalancePageAll `, params })
}

6
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' })
}

4
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' })
}

4
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 (<ElTag
style={dictData.value?.cssClass ? 'color: #fff' : ''}
style={dictData.value?.cssClass=='none'?'background-color: transparent;':dictData.value?.cssClass ? 'color: #fff' : ''}
type={dictData.value?.colorType}
color={
dictData.value?.cssClass && isHexColor(dictData.value?.cssClass)
@ -65,7 +65,7 @@ export default defineComponent({
return (
dictDataList.map(item => {
return <ElTag
style={item?.cssClass ? 'color: #fff' : ''}
style={item?.cssClass=='none'?'background-color: transparent;':item?.cssClass ? 'color: #fff' : ''}
type={item?.colorType}
color={
item?.cssClass && isHexColor(item?.cssClass)

2
src/components/SearchHigh/src/SearchHigh.vue

@ -115,7 +115,7 @@ const props = defineProps({
const message = useMessage() //
const route = useRoute() //
const popoverVisible = ref(false)
const searchOption_high = ref(props.allSchemas?.tableColumns.filter(item => (item.field != "action")))
const searchOption_high = ref(props.allSchemas?.tableColumns.filter(item => (item.field != "action"&&!item.hiddenSearchHigh)))
const moreListData = ref({
filters:[]
})

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

@ -410,4 +410,5 @@ const getPictrue = async () => {
// tipWords.value = res.repMsg
// }
}
defineExpose({ refresh })
</script>

1
src/hooks/web/useCrudSchemas.ts

@ -14,6 +14,7 @@ import { cloneDeep, merge } from 'lodash-es'
export type CrudSchema = Omit<TableColumn, 'children'> & {
isSearch?: boolean // 是否在查询显示
hiddenSearchHigh?: boolean // 是否隐藏高级筛选
search?: CrudSearchParams // 查询的详细配置
isTable?: boolean // 是否在列表显示
table?: CrudTableParams // 列表的详细配置

10
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
}
}

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

@ -74,6 +74,7 @@
<XButton :loading="loginLoading" :title="t('login.login')" class="w-[100%]" type="primary"
@click="handleLogin()" />
</el-form-item>
</el-col>
</el-row>
</el-form>
@ -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(
'<strong>系统迁移,请移步至</strong>' +
`<a href=${getSystermUpdateUrl()} target="_blank">${getSystermUpdateUrl()}</a>`,
'重要提示',
{
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(
'<strong>密码长时间未修改,存在安全隐患,请及时修改</strong>',
'重要提示',
{
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(
'<strong>系统迁移,请移步至</strong>' +
`<a href=${getSystermUpdateUrl()} target="_blank">${getSystermUpdateUrl()}</a>`,
'重要提示',
{
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) {

6
src/views/login/components/QRCodePDA.vue

@ -5,14 +5,18 @@
<!-- <vue-qr bgSrc='https://img2.baidu.com/it/u=1188690822,3145215011&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1038' logoSrc="https://img1.baidu.com/it/u=605875105,1314303687&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" text="Hello world!" :size="200"></vue-qr> -->
<vue-qr :text="apkUrl" :size="200" ></vue-qr>
</div>
<el-button type="primary" link @click="handleClose">PDA安装程序下载链接</el-button>
<el-button type="primary" v-if="pdaUrl" link @click="handleClose">PDA安装程序下载链接</el-button>
</div>
</template>
<script setup lang="ts">
import { downloadApk } from "@/api/login";
import { getPDAUrl,getNeedCode } from '@/utils/systemParam'
// import logoImg from '@/assets/imgs/logo_white_blue.png'
import vueQr from 'vue-qr/src/packages/vue-qr.vue'
const pdaUrl = ref(getPDAUrl()==true||getPDAUrl()=='true')
const apkUrl = ref('')
const showCode = ref(false)
const handleClose = async ()=>{

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

@ -39,7 +39,7 @@
<el-col :span="12">
<el-form-item label="编码">
<el-input
v-model="item.inspectionJobCharacteristicsRespVO.number"
v-model="item.inspectionFeatureCode"
placeholder="根据系统生成"
:disabled="true"
/>

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

@ -108,6 +108,7 @@ import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
import * as StdcostpriceApi from '@/api/wms/stdcostprice'
import * as SalepriceApi from '@/api/wms/saleprice'
import { formatDate } from '@/utils/formatTime'
import * as SupplieritemApi from '@/api/wms/supplieritem'
import * as SupplierApi from '@/api/wms/supplier'
@ -140,10 +141,67 @@ const clearSearchInput = (formField) => {
item.componentProps.options = []
}
})
if (basicFormRef.value.formRef.formModel.lightItemCode) {
basicFormRef.value.formRef.setValues({
lightQty: 0,
claimAmount: '',
otherClaimAmount: 0,
summaryAmount: 0,
disbursementAmount: 0,
remainingAmount: 0
})
const params2 = {
by: 'ASC',
filters: [
{
column: 'itemCode',
action: '==',
value: basicFormRef.value.formRef.formModel.lightItemCode
},
{
column: 'available',
action: '==',
value: 'TRUE'
}
],
pageNo: 1,
pageSize: 500,
sort: ''
}
params2.isSearch = true
SalepriceApi.getSalepricePage(params2).then((res) => {
if (res.list?.length > 0) {
priceObj.value = res.list[0]
basicFormRef.value.formRef.setValues({
standardCostPrice: priceObj.value.price
})
} else {
params2.isSearch = true
StdcostpriceApi.getStdcostpricePage(params2).then((res) => {
if (res.list?.length > 0) {
priceObj.value = res.list[0]
basicFormRef.value.formRef.setValues({
standardCostPrice: priceObj.value.price
})
} else {
basicFormRef.value.formRef.setValues({
standardCostPrice: 0
})
}
})
}
})
} else {
basicFormRef.value.formRef.setValues({
standardCostPrice: ''
})
}
}
if (formField == 'lightItemCode') {
basicFormRef.value.formRef.setValues({
standardCostPrice: '',
lightItemName: '',
lightQty: 0,
claimAmount: '',
@ -152,24 +210,56 @@ const clearSearchInput = (formField) => {
disbursementAmount: 0,
remainingAmount: 0
})
const params2 = {
by: 'ASC',
filters: [
{ column: 'itemCode', action: '==', value: basicFormRef.value.formRef.formModel.itemCode }
],
pageNo: 1,
pageSize: 500,
sort: ''
}
params2.isSearch = true
StdcostpriceApi.getStdcostpricePage(params2).then((res) => {
if (res.list?.length > 0) {
priceObj.value = res.list[0]
basicFormRef.value.formRef.setValues({
standardCostPrice: priceObj.value.price
})
if (basicFormRef.value.formRef.formModel.itemCode) {
const params2 = {
by: 'ASC',
filters: [
{
column: 'itemCode',
action: '==',
value: basicFormRef.value.formRef.formModel.itemCode
},
{
column: 'available',
action: '==',
value: 'TRUE'
}
],
pageNo: 1,
pageSize: 500,
sort: ''
}
})
params2.isSearch = true
SalepriceApi.getSalepricePage(params2).then((res) => {
if (res.list?.length > 0) {
priceObj.value = res.list[0]
basicFormRef.value.formRef.setValues({
standardCostPrice: priceObj.value.price
})
} else {
params2.isSearch = true
StdcostpriceApi.getStdcostpricePage(params2).then((res) => {
if (res.list?.length > 0) {
priceObj.value = res.list[0]
basicFormRef.value.formRef.setValues({
standardCostPrice: priceObj.value.price
})
} else {
basicFormRef.value.formRef.setValues({
standardCostPrice: 0
})
}
})
}
})
} else {
basicFormRef.value.formRef.setValues({
standardCostPrice: ''
})
}
}
}
//
@ -181,7 +271,14 @@ const searchTableSuccess = (formField, searchField, val, formRef) => {
setV['purchaseReceiptNumber'] = ''
const supplierParams = {
by: 'ASC',
filters: [{ column: 'code', action: '==', value: val[0].supplierCode }],
filters: [
{ column: 'code', action: '==', value: val[0].supplierCode },
{
column: 'available',
action: '==',
value: 'TRUE'
}
],
pageNo: 1,
pageSize: 500,
sort: ''
@ -223,18 +320,39 @@ const searchTableSuccess = (formField, searchField, val, formRef) => {
setV['remainingAmount'] = 0
const params2 = {
by: 'ASC',
filters: [{ column: 'itemCode', action: '==', value: val[0].code }],
filters: [
{ column: 'itemCode', action: '==', value: val[0].code },
{
column: 'available',
action: '==',
value: 'TRUE'
}
],
pageNo: 1,
pageSize: 500,
sort: ''
}
params2.isSearch = true
StdcostpriceApi.getStdcostpricePage(params2).then((res) => {
SalepriceApi.getSalepricePage(params2).then((res) => {
if (res.list?.length > 0) {
priceObj.value = res.list[0]
formRef.setValues({
standardCostPrice: priceObj.value.price
})
} else {
params2.isSearch = true
StdcostpriceApi.getStdcostpricePage(params2).then((res) => {
if (res.list?.length > 0) {
priceObj.value = res.list[0]
formRef.setValues({
standardCostPrice: priceObj.value.price
})
} else {
formRef.setValues({
standardCostPrice: 0
})
}
})
}
})
setV[formField] = val[0][searchField]
@ -270,7 +388,14 @@ const searchTableSuccess = (formField, searchField, val, formRef) => {
const supplieritemParams = {
by: 'ASC',
filters: [{ column: 'itemCode', action: '==', value: val[0].itemCode }],
filters: [
{ column: 'itemCode', action: '==', value: val[0].itemCode },
{
column: 'available',
action: '==',
value: 'TRUE'
}
],
pageNo: 1,
pageSize: 500,
sort: ''
@ -289,7 +414,14 @@ const searchTableSuccess = (formField, searchField, val, formRef) => {
})
const itembasicParams = {
by: 'ASC',
filters: [{ column: 'code', action: '==', value: val[0].itemCode }],
filters: [
{ column: 'code', action: '==', value: val[0].itemCode },
{
column: 'available',
action: '==',
value: 'TRUE'
}
],
pageNo: 1,
pageSize: 500,
sort: ''
@ -303,8 +435,9 @@ const searchTableSuccess = (formField, searchField, val, formRef) => {
})
}
})
if (basicFormRef.value.formRef.formModel.lightItemCode == null||
basicFormRef.value.formRef.formModel.lightItemCode == ''
if (
basicFormRef.value.formRef.formModel.lightItemCode == null ||
basicFormRef.value.formRef.formModel.lightItemCode == ''
) {
setV['standardCostPrice'] = ''
setV['lightQty'] = 0
@ -315,18 +448,41 @@ const searchTableSuccess = (formField, searchField, val, formRef) => {
setV['remainingAmount'] = 0
const params2 = {
by: 'ASC',
filters: [{ column: 'itemCode', action: '==', value: val[0].itemCode }],
filters: [
{ column: 'itemCode', action: '==', value: val[0].itemCode },
{
column: 'available',
action: '==',
value: 'TRUE'
}
],
pageNo: 1,
pageSize: 500,
sort: ''
}
params2.isSearch = true
StdcostpriceApi.getStdcostpricePage(params2).then((res) => {
console.log(123)
SalepriceApi.getSalepricePage(params2).then((res) => {
console.log(456)
if (res.list?.length > 0) {
priceObj.value = res.list[0]
formRef.setValues({
standardCostPrice: priceObj.value.price
})
} else {
params2.isSearch = true
StdcostpriceApi.getStdcostpricePage(params2).then((res) => {
if (res.list?.length > 0) {
priceObj.value = res.list[0]
formRef.setValues({
standardCostPrice: priceObj.value.price
})
} else {
formRef.setValues({
standardCostPrice: 0
})
}
})
}
})
}
@ -401,7 +557,12 @@ const onChange = (field, e) => {
const paramsCustomer = {
by: 'ASC',
filters: [
{ column: 'code', action: '==', value: basicFormRef.value.formRef.formModel.supplierCode }
{ column: 'code', action: '==', value: basicFormRef.value.formRef.formModel.supplierCode },
{
column: 'available',
action: '==',
value: 'TRUE'
}
],
pageNo: 1,
pageSize: 500,
@ -582,10 +743,10 @@ const formsSuccess = async (formType, data) => {
// message.error('0')
// return
// }
if (!data.standardCostPrice) {
message.error('标准成本价格不能为0或空')
return
}
// if (!data.standardCostPrice) {
// message.error('0')
// return
// }
if (data.activeTime == 0) data.activeTime = null
if (data.expireTime == 0) data.expireTime = null

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

@ -329,7 +329,7 @@ export const Q2 = useCrudSchemas(
}
},
{
label: '整灯物料代码',
label: '整灯/分总成物料代码',
field: 'lightItemCode',
sort: 'custom',
table: {
@ -341,7 +341,7 @@ export const Q2 = useCrudSchemas(
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchListPlaceholder: '请选择整灯/分总成物料代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '物料基础信息', // 查询弹窗标题
searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类
@ -372,7 +372,7 @@ export const Q2 = useCrudSchemas(
}
},
{
label: '整灯物料名称',
label: '整灯/分总成物料名称',
field: 'lightItemName',
sort: 'custom',
dictClass: 'string',
@ -454,7 +454,7 @@ export const Q2 = useCrudSchemas(
}
},
{
label: '标准成本价格',
label: '销售价格',
field: 'standardCostPrice',
sort: 'custom',
isSearch: false,

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

@ -106,6 +106,7 @@ import * as InspectionQ3MainApi from '@/api/qms/inspectionQ3/inspectionQ3Main'
import * as InspectionQ3DetailApi from '@/api/qms/inspectionQ3/inspectionQ3Detail'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import * as ProductionlineitemApi from '@/api/wms/productionlineitem'
import * as ProductionlineApi from '@/api/wms/productionline'
import * as StdcostpriceApi from '@/api/wms/stdcostprice'
import { formatDate } from '@/utils/formatTime'
import { async } from '@antv/x6/lib/registry/marker/async'
@ -173,7 +174,7 @@ const setTableFormsValues = async (val, index1) => {
newRow['uom'] = val[index1]['uom']
newRow['qty'] = 0
newRow.defectLocation = val[index1]['productionLineCode']
await ProductionlineitemApi.selectItemCodeToProductionLineCode(val[index1].itemCode).then(
await ProductionlineApi.getProductionlineNoPage({}).then(
(res) => {
console.log(res)
if (res?.length > 0) {
@ -419,7 +420,6 @@ const submitForm = async (formType, submitData) => {
return;
}
let flag = false;
console.log(1111)
data.subList.forEach((item) => {
if(item.qty == 0){
message.warning("数量不能为0")

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

@ -323,16 +323,18 @@ export const InspectionQ3Detail = useCrudSchemas(
],
verificationPage: ProductionlineitemApi.getProductionLineCodelistByCodes, // tableForm下方输入框校验失去焦点之后是否正确的方法
isShowTableFormSearch: true, //tableForm下方是否出现输入框
isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据
isRepeat: true, //tableForm下方输入框是否可以重复添加该条数据
// 失去焦点校验参数
verificationParams: [{
key: 'itemCode',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}]
verificationParams: [
{
key: 'itemCode',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true
}
]
},
form: {
// labelMessage: '信息提示说明!!!',
@ -485,16 +487,16 @@ export const InspectionQ3Detail = useCrudSchemas(
filterable: true,
options: [],
optionsAlias: {
labelField: 'productionLineName',
valueField: 'productionLineCode'
labelField: 'code',
valueField: 'code'
}
}
},
tableForm: {
type: 'Select',
filterable: true,
valueField: 'productionLineName',
labelField: 'productionLineCode'
labelField: 'code',
valueField: 'code'
}
},
{

2
src/views/qms/inspectionScheme/detail.vue

@ -340,12 +340,14 @@ onMounted(async () => {
list.forEach((item, index) => {
let obj = {
inspectionCode: item.inspectionCode,
code: item.code,
description: item.description,
inspectionCharCode: item.inspectionCharCode,
sequenceCode: item.sequenceCode,
name: String(index + 1),
inspectionCharacteristicsBaseVO: {
description: item.inspectionCharacteristicsBaseVO.description,
code: item.inspectionCharacteristicsBaseVO.code,
featureType: item.inspectionCharacteristicsBaseVO.featureType,
inspectionMethodCode: item.inspectionCharacteristicsBaseVO.inspectionMethodCode,
inspectionMethodName: item.inspectionCharacteristicsBaseVO.inspectionMethodName,

53
src/views/wms/agvManage/backflushDetailbQad/backflushDetailbQad.data.ts

@ -39,7 +39,6 @@ export const BackflushDetailbQad = useCrudSchemas(reactive<CrudSchema[]>([
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
@ -50,20 +49,52 @@ export const BackflushDetailbQad = useCrudSchemas(reactive<CrudSchema[]>([
},
isForm: false,
},
// {
// label: '创建者Id',
// field: 'creator',
// sort: 'custom',
// isForm: false,
// },
{
label: '创建者Id',
field: 'creator',
sort: 'custom',
isForm: false,
},
{
label: '执行状态0未执行1成功2失败',
label: '执行状态',
field: 'status',
sort: 'custom',
isSearch: true,
form: {
component: 'SelectV2'
},
search: {
component: 'Select',
componentProps: {
options: [{
value: 0,
label: '未执行'
},
{
value: 1,
label: '成功'
},
{
value: 2,
label: '失败'
}]
},
},
form: {
component: 'Select',
componentProps: {
options: [{
value: 0,
label: '未执行'
},
{
value: 1,
label: '成功'
},
{
value: 2,
label: '失败'
}]
},
},
},
{
label: '操作',

22
src/views/wms/agvManage/backflushDetailbQad/index.vue

@ -27,6 +27,9 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #status="{row}">
<span>{{ row.status==0?'未执行':row.status==1?'成功':'失败'}}</span>
</template>
<template #code="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
@ -65,7 +68,7 @@ import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
// QAD
defineOptions({ name: 'BackflushDetailbQad' })
const message = useMessage() //
@ -133,8 +136,8 @@ const buttonBaseClick = (val, item) => {
// -
const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'wms:backflushDetailbQad:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'wms:backflushDetailbQad:delete'}), //
defaultButtons.mainListEditBtn({hasPermi:'wms:backflush-detailb-qad:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:backflush-detailb-qad:delete'}), //
]
// -
@ -149,6 +152,19 @@ const buttonTableClick = async (val, row) => {
/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
if(type=='update'){
//
BackflushDetailbQad.allSchemas.formSchema.forEach(item=>{
if(item.field != 'status'){
item.componentProps.disabled = true
}
})
}else{
BackflushDetailbQad.allSchemas.formSchema.forEach(item=>{
item.componentProps.disabled = false
})
}
basicFormRef.value.open(type, row)
}

1
src/views/wms/basicDataManage/itemManage/bom/index.vue

@ -72,6 +72,7 @@ import { formatDate } from '@/utils/formatTime'
import { usePageLoading } from '@/hooks/web/usePageLoading'
const { loadStart, loadDone } = usePageLoading()
// bom
//
defineOptions({ name: 'Bom' })
const message = useMessage() //

1
src/views/wms/basicDataManage/itemManage/itembasic/index.vue

@ -93,6 +93,7 @@ import { usePageLoading } from '@/hooks/web/usePageLoading'
const { loadStart, loadDone } = usePageLoading()
//
//
defineOptions({ name: 'Itembasic' })
const tabsExtend = ref(false)

1
src/views/wms/basicDataManage/itemManage/packageunit/index.vue

@ -69,6 +69,7 @@ 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: 'Packageunit' })
const message = useMessage() //

1
src/views/wms/basicDataManage/itemManage/productionitemcodeSpareitemcode/index.vue

@ -68,6 +68,7 @@ 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: 'ProductionitemcodeSpareitemcode' })
const message = useMessage() //

6
src/views/wms/basicDataManage/strategySetting/strategy/arrivalInspectionStrategy/AddForm.vue

@ -35,7 +35,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="优先级" prop="priority">
<el-input-number v-model="formData.priority" :min="0" />
<el-input-number v-model="formData.priority" :min="0" :disabled="formData.name=='默认规则'&&formType=='update'"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -60,6 +60,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -74,6 +75,7 @@
style="flex: 1"
clearable
@change="changeSupplierType"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.SUPPLIER_TYPE)"
@ -93,6 +95,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -108,6 +111,7 @@
clearable
multiple
collapse-tags
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in options.supplierList"

12
src/views/wms/basicDataManage/strategySetting/strategy/batchStrategy/AddForm.vue

@ -35,7 +35,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="优先级" prop="priority">
<el-input-number v-model="formData.priority" :min="0" />
<el-input-number v-model="formData.priority" :min="0" :disabled="formData.name=='默认规则'&&formType=='update'"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -58,6 +58,7 @@
placeholder=""
style="width: 110px; margin-right: 10px"
@change="changeSupplierCustomer"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -70,6 +71,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -85,6 +87,7 @@
clearable
multiple
collapse-tags
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in options.supplierList"
@ -101,6 +104,7 @@
placeholder=""
@change="changeItemsType"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="item.label"
@ -113,6 +117,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -129,6 +134,7 @@
multiple
collapse-tags
v-if="item.ParamCode == 'ItemType'"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ITEM_TYPE)"
@ -145,6 +151,7 @@
multiple
collapse-tags
v-else-if="item.ParamCode == 'AbcClass'"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ABC_CLASS)"
@ -159,6 +166,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'ItemGroup'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
<el-input
v-model="item.Value"
@ -166,6 +174,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'Project'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
<el-input
v-model="item.Value"
@ -173,6 +182,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'ItemCode'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
</el-form-item>
</el-col>

22
src/views/wms/basicDataManage/strategySetting/strategy/downShelfStrategy/AddForm.vue

@ -36,7 +36,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="优先级" prop="priority">
<el-input-number key="priority" v-model="formData.priority" :min="0" />
<el-input-number key="priority" v-model="formData.priority" :min="0" :disabled="formData.name=='默认规则'&&formType=='update'"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -60,6 +60,7 @@
placeholder=""
style="width: 110px; margin-right: 10px"
@change="changeSupplierCustomer"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -72,6 +73,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -89,6 +91,7 @@
collapse-tags
filterable
:filter-method="filterMethod"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in options.supplierList"
@ -105,6 +108,7 @@
placeholder=""
@change="changeItemsType"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="item.label"
@ -117,6 +121,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -133,6 +138,7 @@
multiple
collapse-tags
v-if="item.ParamCode == 'ItemType'"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ITEM_TYPE)"
@ -149,6 +155,7 @@
multiple
collapse-tags
v-else-if="item.ParamCode == 'AbcClass'"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ABC_CLASS)"
@ -165,6 +172,7 @@
multiple
collapse-tags
v-if="item.ParamCode == 'ItemGroup'"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ITEM_GROUP)"
@ -186,6 +194,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'Project'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
<el-input key="物料"
v-model="item.Value"
@ -193,6 +202,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'ItemCode'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
</el-form-item>
<!-- 选择重量体积还是面积 -->
@ -202,6 +212,7 @@
placeholder=""
@change="changeCalculation"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -214,6 +225,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -229,6 +241,7 @@
}`"
clearable
style="flex: 1"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
</el-form-item>
<!-- 库存状态 -->
@ -237,6 +250,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -252,6 +266,7 @@
clearable
multiple
collapse-tags
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.INVENTORY_STATUS)"
@ -267,6 +282,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -282,6 +298,7 @@
clearable
multiple
collapse-tags
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.STORAGE_TYPE)"
@ -297,6 +314,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -313,7 +331,7 @@
/> -->
<el-input key="库存事务Value" style="flex:1" placeholder="请选择库存事务" disabled v-model="item.Value" @blur="blurTransactionType">
<template #suffix>
<el-button type="text" plain style="color:var(--el-button-text-color)" @click="searchTransactionType">
<el-button :disabled="formData.name=='默认规则'&&formType=='update'" type="text" plain style="color:var(--el-button-text-color)" @click="searchTransactionType">
<Icon icon="ep:search" class="mr-5px" />
</el-button>
</template>

8
src/views/wms/basicDataManage/strategySetting/strategy/inspectStrategy/AddForm.vue

@ -36,7 +36,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="优先级" prop="priority">
<el-input-number v-model="formData.priority" :min="0" />
<el-input-number v-model="formData.priority" :min="0" :disabled="formData.name=='默认规则'&&formType=='update'"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -57,6 +57,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -71,6 +72,7 @@
style="flex: 1"
clearable
@change="changeSupplierType"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.SUPPLIER_TYPE)"
@ -96,6 +98,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -109,6 +112,7 @@
placeholder="请选择供应商"
style="flex: 1"
clearable
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in options.supplierList"
@ -124,6 +128,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -137,6 +142,7 @@
placeholder="请输入物料,多个物料以逗号分隔"
clearable
style="flex: 1"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
</el-form-item>
</el-col>

6
src/views/wms/basicDataManage/strategySetting/strategy/purchaseReceiptStrategy/AddForm.vue

@ -36,7 +36,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="优先级" prop="priority">
<el-input-number v-model="formData.priority" :min="0" />
<el-input-number v-model="formData.priority" :min="0" :disabled="formData.name=='默认规则'&&formType=='update'"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -61,6 +61,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -75,6 +76,7 @@
style="flex: 1"
clearable
@change="changeSupplierType"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.SUPPLIER_TYPE)"
@ -94,6 +96,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -109,6 +112,7 @@
clearable
multiple
collapse-tags
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in options.supplierList"

12
src/views/wms/basicDataManage/strategySetting/strategy/storageCapacityStrategy/AddForm.vue

@ -35,7 +35,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="优先级" prop="priority">
<el-input-number v-model="formData.priority" :min="0" />
<el-input-number v-model="formData.priority" :min="0" :disabled="formData.name=='默认规则'&&formType=='update'"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -58,6 +58,7 @@
placeholder=""
@change="changeItemsType"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -70,6 +71,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -86,6 +88,7 @@
multiple
collapse-tags
v-if="item.ParamCode == 'ItemType'"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ITEM_TYPE)"
@ -102,6 +105,7 @@
multiple
collapse-tags
v-else-if="item.ParamCode == 'AbcClass'"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ABC_CLASS)"
@ -116,6 +120,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'ItemGroup'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
<el-input
v-model="item.Value"
@ -123,6 +128,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'Project'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
<el-input
v-model="item.Value"
@ -130,6 +136,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'ItemCode'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
</el-form-item>
<!-- 仓库 库区 库位组 库位 -->
@ -139,6 +146,7 @@
placeholder=""
style="width: 110px; margin-right: 10px"
@change="changeWarehouse"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -151,6 +159,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -176,6 +185,7 @@
multiple
collapse-tags
style="flex: 1"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in options.warehouseList"

8
src/views/wms/basicDataManage/strategySetting/strategy/supplieDeliveryStrategy/AddForm.vue

@ -36,7 +36,7 @@
</el-col>
<el-col :span="12">
<el-form-item :label="t('ts.优先级').replace('ts.','')" prop="priority">
<el-input-number key="priority" v-model="formData.priority" :min="0" />
<el-input-number key="priority" v-model="formData.priority" :min="0" :disabled="formData.name=='默认规则'&&formType=='update'"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -61,6 +61,7 @@
v-model="item.Operator"
:placeholder="t('ts.请选择范围').replace('ts.','')"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="t(`ts.${cur.label}`).replace('ts.','')"
@ -75,6 +76,7 @@
style="flex: 1"
clearable
@change="changeSupplierType"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.SUPPLIER_TYPE)"
@ -94,6 +96,7 @@
v-model="item.Operator"
:placeholder="t('ts.请选择范围').replace('ts.','')"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="t(`ts.${cur.label}`).replace('ts.','')"
@ -109,6 +112,7 @@
clearable
multiple
collapse-tags
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in options.supplierList"
@ -128,6 +132,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="t(`ts.${cur.label}`).replace('ts.','')"
@ -142,6 +147,7 @@
:label="t(`ts.${cur.label}`).replace('ts.','')"
v-for="cur in options.weekOptions"
:key="'星期几Value'+cur.value"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
</el-checkbox-group>
</div>

26
src/views/wms/basicDataManage/strategySetting/strategy/upShelfStrategy/AddForm.vue

@ -35,7 +35,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="优先级" prop="priority">
<el-input-number key="priority" v-model="formData.priority" :min="0" />
<el-input-number key="priority" v-model="formData.priority" :min="0" :disabled="formData.name=='默认规则'&&formType=='update'"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -58,6 +58,7 @@
placeholder=""
style="width: 110px; margin-right: 10px"
@change="changeSupplierCustomer"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -70,6 +71,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -87,6 +89,7 @@
collapse-tags
filterable
:filter-method="filterMethod"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in options.supplierList"
@ -103,6 +106,7 @@
placeholder=""
@change="changeItemsType"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="item.label"
@ -115,6 +119,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -131,6 +136,7 @@
multiple
collapse-tags
v-if="item.ParamCode == 'ItemType'"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ITEM_TYPE)"
@ -147,6 +153,7 @@
multiple
collapse-tags
v-else-if="item.ParamCode == 'AbcClass'"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ABC_CLASS)"
@ -161,6 +168,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'ItemGroup'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
<el-input key="项目"
v-model="item.Value"
@ -168,6 +176,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'Project'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
<el-input key="物料"
v-model="item.Value"
@ -175,6 +184,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'ItemCode'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
</el-form-item>
<!-- 选择重量体积还是面积 -->
@ -184,6 +194,7 @@
placeholder=""
@change="changeCalculation"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -196,6 +207,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -211,6 +223,7 @@
}`"
clearable
style="flex: 1"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
</el-form-item>
<!-- 库存状态 -->
@ -219,6 +232,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -234,6 +248,7 @@
clearable
multiple
collapse-tags
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.INVENTORY_STATUS)"
@ -249,6 +264,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -264,6 +280,7 @@
clearable
multiple
collapse-tags
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.STORAGE_TYPE)"
@ -279,6 +296,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -295,7 +313,7 @@
/> -->
<el-input key="库存事务Value" style="flex:1" placeholder="请选择库存事务" disabled v-model="item.Value" @blur="blurTransactionType">
<template #suffix>
<el-button type="text" plain style="color:var(--el-button-text-color)" @click="searchTransactionType">
<el-button :disabled="formData.name=='默认规则'&&formType=='update'" type="text" plain style="color:var(--el-button-text-color)" @click="searchTransactionType">
<Icon icon="ep:search" class="mr-5px" />
</el-button>
</template>
@ -1097,7 +1115,7 @@ const open = async (type: string, strategyCode: string, id?: number) => {
}
if (data.configuration) {
formData.value.configuration = JSON.parse(data.configuration)
if(!Array.isArray(formData.value.configuration.overflowLocationCode)&&formData.value.configuration.overflowLocationCode.length>0){
if(formData.value.configuration.overflowLocationCode&&!Array.isArray(formData.value.configuration.overflowLocationCode)&&formData.value.configuration.overflowLocationCode.length>0){
formData.value.configuration.overflowLocationCode = formData.value.configuration.overflowLocationCode.split(',')
}
}
@ -1202,7 +1220,7 @@ const submitForm = async () => {
}
})
let configuration = {...formData.value.configuration}
if(Array.isArray(configuration.overflowLocationCode)){
if(configuration.overflowLocationCode&&Array.isArray(configuration.overflowLocationCode)){
configuration.overflowLocationCode = configuration.overflowLocationCode.join(',')
}
let data = {

11
src/views/wms/basicDataManage/strategySetting/strategy/utensilCapacityStrategy/AddForm.vue

@ -35,7 +35,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="优先级" prop="priority">
<el-input-number v-model="formData.priority" :min="0" />
<el-input-number v-model="formData.priority" :min="0" :disabled="formData.name=='默认规则'&&formType=='update'"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -67,6 +67,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -82,6 +83,7 @@
clearable
multiple
collapse-tags
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.CONTAINER_TYPE)"
@ -98,6 +100,7 @@
placeholder=""
@change="changeItemsType"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -110,6 +113,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -126,6 +130,7 @@
multiple
collapse-tags
v-if="item.ParamCode == 'ItemType'"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ITEM_TYPE)"
@ -142,6 +147,7 @@
multiple
collapse-tags
v-else-if="item.ParamCode == 'AbcClass'"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ABC_CLASS)"
@ -156,6 +162,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'ItemGroup'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
<el-input
v-model="item.Value"
@ -163,6 +170,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'Project'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
<el-input
v-model="item.Value"
@ -170,6 +178,7 @@
clearable
style="flex: 1"
v-else-if="item.ParamCode == 'ItemCode'"
:disabled="formData.name=='默认规则'&&formType=='update'"
/>
</el-form-item>
</el-col>

5
src/views/wms/basicDataManage/strategySetting/strategy/warehouseStorageStrategy/AddForm.vue

@ -35,7 +35,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="优先级" prop="priority">
<el-input-number v-model="formData.priority" :min="0" />
<el-input-number v-model="formData.priority" :min="0" :disabled="formData.name=='默认规则'&&formType=='update'"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -59,6 +59,7 @@
placeholder=""
style="width: 120px; margin-right: 10px"
@change="changeWarehouse"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -71,6 +72,7 @@
v-model="item.Operator"
placeholder="请选择范围"
style="width: 110px; margin-right: 10px"
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
:label="cur.label"
@ -96,6 +98,7 @@
style="flex: 1"
multiple
collapse-tags
:disabled="formData.name=='默认规则'&&formType=='update'"
>
<el-option
v-for="cur in options.warehouseList"

37
src/views/wms/basicDataManage/supplierManage/supplieritem/index.vue

@ -69,6 +69,7 @@ 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: 'Supplieritem' })
const message = useMessage() //
@ -195,22 +196,25 @@ const formsSuccess = async (formType,data) => {
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
basicFormRef.value.formLoading = true
if (formType === 'create') {
if(routeName.value.includes('SCP')){
await SupplieritemApi.createSupplieritemSCP(data)
}else{
await SupplieritemApi.createSupplieritem(data)
}
message.success(t('common.createSuccess'))
} else {
if(routeName.value.includes('SCP')){
await SupplieritemApi.updateSupplieritemSCP(data)
}else{
await SupplieritemApi.updateSupplieritem(data)
try {
if (formType === 'create') {
if(routeName.value.includes('SCP')){
await SupplieritemApi.createSupplieritemSCP(data)
}else{
await SupplieritemApi.createSupplieritem(data)
}
message.success(t('common.createSuccess'))
} else {
if(routeName.value.includes('SCP')){
await SupplieritemApi.updateSupplieritemSCP(data)
}else{
await SupplieritemApi.updateSupplieritem(data)
}
message.success(t('common.updateSuccess'))
}
message.success(t('common.updateSuccess'))
} finally {
basicFormRef.value.formLoading = false
}
basicFormRef.value.formLoading = false
basicFormRef.value.dialogVisible = false
if (formType === 'create') {
getList()
@ -224,6 +228,11 @@ const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
if(formField == 'supplierCode'){
setV['supplierName'] = val[0]['name']
}else if(formField == 'itemCode'){
setV['itemName'] = val[0]['name']
}
formRef.setValues(setV)
})
}

26
src/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data.ts

@ -56,6 +56,19 @@ export const Supplieritem = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
{
label: '供应商名称',
field: 'supplierName',
isForm:true,
form:{
componentProps:{
disabled: true
}
},
table: {
width: 180
}
},
{
label: '物料代码',
field: 'itemCode',
@ -90,6 +103,19 @@ export const Supplieritem = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
{
label: '物料名称',
field: 'itemName',
isForm:true,
form:{
componentProps:{
disabled: true
}
},
table: {
width: 180
}
},
{
label: '供应商物料代码',
field: 'supplierItemCode',

192
src/views/wms/inventoryManage/balance/balance.data.ts

@ -31,6 +31,7 @@ export const Balance = useCrudSchemas(
table: {
width: 150
},
hiddenSearchHigh: true,// 高级筛选中隐藏
isSearch: true
},
{
@ -40,24 +41,7 @@ export const Balance = useCrudSchemas(
table: {
width: 150
},
isSearch: true
},
{
label: '物料名称',
field: 'itemName',
sort: 'custom',
table: {
width: 150
},
isSearch: true
},
{
label: '物料名称',
field: 'itemName',
sort: 'custom',
table: {
width: 150
},
hiddenSearchHigh: true,// 高级筛选中隐藏
isSearch: true
},
{
@ -80,6 +64,15 @@ export const Balance = useCrudSchemas(
},
isSearch: true
},
{
label: '供应商批次',
field: 'altBatch',
sort: 'custom',
table: {
width: 150
},
isSearch: false
},
{
label: '包装号',
field: 'packingNumber',
@ -508,6 +501,169 @@ export const Balance = useCrudSchemas(
])
)
export const TransactionTab = useCrudSchemas(reactive<CrudSchema[]>([
{
label: 'id',
field: 'id',
sort: 'custom',
isTable: true,
isForm: true,
isDetail:true,
},
{
label: '创建时间',
field: 'createTime',
isTable: true,
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',
table: {
width: 150
},
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
}
},
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
table: {
width: 150
},
},
{
label: '事务类型',
field: 'transactionType',
sort: 'custom',
table: {
width: 150
},
},
{
label: '库存动作',
field: 'inventoryAction',
dictType: DICT_TYPE.INVENTORY_ACTION,
dictClass: 'string',
isTable: true,
isSearch: true,
sort: 'custom',
table: {
width: 150
},
},
{
label: '业务记录号',
field: 'recordNumber',
sort: 'custom',
isTable: true,
isSearch: true,
table: {
width: 180
},
},
{
label: '包装号',
field: 'packingNumber',
sort: 'custom',
table: {
width: 150
},
isSearch: true,
},
{
label: '物料代码',
field: 'itemCode',
sort: 'custom',
table: {
width: 150
},
isSearch: true,
},
{
label: '批次',
field: 'batch',
sort: 'custom',
table: {
width: 150
},
isSearch: true,
},
{
label: '替代批次',
field: 'altBatch',
sort: 'custom',
table: {
width: 150
},
isSearch: true,
},
{
label: '库位代码',
field: 'locationCode',
sort: 'custom',
table: {
width: 150
},
},
{
label: '库存状态',
field: 'inventoryStatus',
dictType: DICT_TYPE.INVENTORY_STATUS,
dictClass: 'string',
isTable: true,
isSearch: true,
sort: 'custom',
table: {
width: 150
},
},
{
label: '数量',
field: 'qty',
sort: 'custom',
table: {
width: 150
},
form: {
component: 'InputNumber',
}
},
{
label: '事务号',
field: 'number',
sort: 'custom',
table: {
width: 180
},
},
{
label: '备注',
field: 'remark',
sort: 'custom',
isSearch: true
}
]))
// 表单校验
export const BalanceRules = reactive({
packingNumber: [

40
src/views/wms/inventoryManage/balance/index.vue

@ -52,7 +52,20 @@
/>
<!-- 详情 -->
<Detail ref="detailRef" :isBasic="true" :allSchemas="Balance.allSchemas" />
<Detail
ref="detailRef"
:isBasic="true"
:allSchemas="TransactionTab.allSchemas"
:detailAllSchemas="TransactionTab.allSchemas"
:apiPage="apiPage"
:tabsExtend="tabsExtend"
:tabs="[{
label: '库存事务',
prop: 'Transaction'
}]"
@changeTabs="changeTabs"
:tableObjectExtend="tableObjectExtend"
/>
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/balance/import" :importTemplateData="importTemplateData" @success="importSuccess" />
@ -64,7 +77,7 @@ import download from '@/utils/download'
import * as BalanceApi from '@/api/wms/balance'
import * as PackageApi from '@/api/wms/package'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Balance, BalanceRules } from './balance.data'
import { Balance,TransactionTab, BalanceRules } from './balance.data'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -84,6 +97,9 @@ const route = useRoute() //路由信息
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(Balance.allSchemas.tableColumns)
const tabsExtend = ref(false)
const apiPage = ref()
const tableObjectExtend = ref()
//
const updataTableColumns = (val) => {
@ -245,7 +261,9 @@ const openForm = (type: string, row?: any) => {
/** 详情操作 */
const detailRef = ref()
const chooseRow = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
chooseRow.value = row
detailRef.value.openDetail(row, titleName, titleValue,'transactionBalance')
}
@ -330,7 +348,23 @@ const searchFormClick = (searchData) => {
}
getList() //
}
const changeTabs = (item) => {
if (item.prop == 'Transaction') {
tabsExtend.value = true
//
tableObjectExtend.value = [{
key: 'masterId',
value: chooseRow.value.id
}]
apiPage.value = BalanceApi.getTransactionBalancePage
console.log(988,tableObjectExtend.value)
} else {
tableObjectExtend.value = []
tabsExtend.value = false
apiPage.value = ''
}
}
/** 初始化 **/
onMounted(async() => {
getList()

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

@ -168,6 +168,9 @@ export const ScrapJobMain = useCrudSchemas(
table: {
width: 150
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: '订单号',
@ -176,6 +179,27 @@ export const ScrapJobMain = useCrudSchemas(
table: {
width: 150
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: '出库原因',
field: 'outboundReason',
dictType: DICT_TYPE.UNPLANNED_ISSUE_REASON,
dictClass: 'string',
table: {
width: 150
},
form: {
componentProps: {
filterable: true
}
},
tableForm: {
type: 'Select',
filterable: true
}
},
{
label: 'Q1通知单号',
@ -248,6 +272,9 @@ export const ScrapJobMain = useCrudSchemas(
table: {
width: 180
},
isTable:false,
isForm:false,
isTableForm:false,
form: {
component: 'DatePicker',
componentProps: {
@ -264,6 +291,9 @@ export const ScrapJobMain = useCrudSchemas(
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
isTable:false,
isForm:false,
isTableForm:false,
sort: 'custom',
table: {
width: 180
@ -283,7 +313,7 @@ export const ScrapJobMain = useCrudSchemas(
sort: 'custom',
table: {
width: 150
}
},
},
{
label: '从库区代码范围',
@ -291,7 +321,10 @@ export const ScrapJobMain = useCrudSchemas(
sort: 'custom',
table: {
width: 150
}
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: '从库区类型范围',
@ -309,11 +342,13 @@ export const ScrapJobMain = useCrudSchemas(
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
}
},
isTable:false,
isForm:false,
isTableForm:false,
},
// {
// label: '状态',
@ -332,7 +367,10 @@ export const ScrapJobMain = useCrudSchemas(
},
form: {
component: 'InputNumber'
}
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: '优先级增量',
@ -343,7 +381,10 @@ export const ScrapJobMain = useCrudSchemas(
},
form: {
component: 'InputNumber'
}
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: '业务类型',
@ -367,7 +408,10 @@ export const ScrapJobMain = useCrudSchemas(
sort: 'custom',
table: {
width: 150
}
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: '单据备注',
@ -867,25 +911,11 @@ export const ScrapJobDetail = useCrudSchemas(reactive<CrudSchema[]>([
},
},
{
label: '原因',
label: '报废原因',
field: 'reason',
dictType: DICT_TYPE.SCRAP_REASON,
dictClass: 'string',
formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
return cellValue
},
table: {
width: 150
},
form: {
componentProps: {
filterable: true
}
},
tableForm: {
type: 'Select',
filterable: true
}
},
{
label: '货主代码',
@ -894,6 +924,9 @@ export const ScrapJobDetail = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 150
},
isTable:false,
isForm:false,
isTableForm:false,
},
// {
// label: '项目代码',
@ -910,6 +943,9 @@ export const ScrapJobDetail = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 150
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: '创建时间',

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

@ -138,6 +138,24 @@ export const ScrapRecordMain = useCrudSchemas(
}
}
},
{
label: '出库原因',
field: 'outboundReason',
dictType: DICT_TYPE.UNPLANNED_ISSUE_REASON,
dictClass: 'string',
table: {
width: 150
},
form: {
componentProps: {
filterable: true
}
},
tableForm: {
type: 'Select',
filterable: true
}
},
{
label: '项目代码',
field: 'projectCode',
@ -177,6 +195,9 @@ export const ScrapRecordMain = useCrudSchemas(
table: {
width: 150
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: '订单号',
@ -185,6 +206,9 @@ export const ScrapRecordMain = useCrudSchemas(
table: {
width: 150
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: 'Q1通知单号',
@ -244,6 +268,9 @@ export const ScrapRecordMain = useCrudSchemas(
table: {
width: 180
},
isTable:false,
isForm:false,
isTableForm:false,
form: {
component: 'DatePicker',
componentProps: {
@ -319,7 +346,10 @@ export const ScrapRecordMain = useCrudSchemas(
sort: 'custom',
table: {
width: 150
}
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: '出库事务类型',
@ -370,7 +400,10 @@ export const ScrapRecordMain = useCrudSchemas(
sort: 'custom',
table: {
width: 150
}
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: '单据备注',
@ -661,25 +694,11 @@ export const ScrapRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([
},
},
{
label: '原因',
label: '报废原因',
field: 'reason',
dictType: DICT_TYPE.SCRAP_REASON,
dictClass: 'string',
formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
return cellValue
},
table: {
width: 150
},
form: {
componentProps: {
filterable: true
}
},
tableForm: {
type: 'Select',
filterable: true
}
},
{
label: '单价',
@ -726,6 +745,9 @@ export const ScrapRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 150
},
isTable:false,
isForm:false,
isTableForm:false,
},
// {
// label: '项目代码',
@ -742,6 +764,9 @@ export const ScrapRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 150
},
isTable:false,
isForm:false,
isTableForm:false,
},
{
label: '接口类型',

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

@ -153,6 +153,8 @@ export const ScrapRequestMain = useCrudSchemas(
table: {
width: 150
},
isForm:false,
isTable:false,
form: {
componentProps: {
disabled: true
@ -281,6 +283,8 @@ export const ScrapRequestMain = useCrudSchemas(
label: '工作中心',
field: 'workCenter',
sort: 'custom',
isTable:false,
isForm:false,
table: {
width: 150
},
@ -289,10 +293,30 @@ export const ScrapRequestMain = useCrudSchemas(
label: '订单号',
field: 'orderNumber',
sort: 'custom',
isTable:false,
isForm:false,
table: {
width: 150
},
},
{
label: '出库原因',
field: 'outboundReason',
dictType: DICT_TYPE.UNPLANNED_ISSUE_REASON,
dictClass: 'string',
table: {
width: 150
},
form: {
componentProps: {
filterable: true
}
},
tableForm: {
type: 'Select',
filterable: true
}
},
{
label: 'Q1通知单号',
field: 'q1Number',
@ -480,6 +504,9 @@ export const ScrapRequestMain = useCrudSchemas(
table: {
width: 180
},
isTable:false,
isForm:false,
isTableForm:false,
form: {
component: 'DatePicker',
componentProps: {
@ -564,8 +591,9 @@ export const ScrapRequestMain = useCrudSchemas(
table: {
width: 150
},
isSearch: true,
isForm: false
isSearch: false,
isForm: false,
isTableForm: false,
},
{
label: '从库区代码范围',
@ -574,7 +602,9 @@ export const ScrapRequestMain = useCrudSchemas(
table: {
width: 150
},
isForm: false
isForm: false,
isTableForm: false,
isTable:false,
},
{
label: '业务类型',
@ -620,6 +650,8 @@ export const ScrapRequestMain = useCrudSchemas(
label: '通知单描述',
field: 'noticeRemark',
sort: 'custom',
isForm:false,
isTable:false,
table: {
width: 150
}
@ -630,7 +662,10 @@ export const ScrapRequestMain = useCrudSchemas(
sort: 'custom',
table: {
width: 150
}
},
isTable:false,
isForm:false,
isTableForm:false
},
{
label: '自动提交',
@ -1023,13 +1058,13 @@ export const ScrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
component: 'InputNumber',
componentProps: {
min: 0,
precision: 6
precision: 2
}
},
tableForm: {
type: 'InputNumber',
min: 0,
precision: 6
precision: 2
}
},
{
@ -1122,30 +1157,19 @@ export const ScrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
isForm: false,
},
{
label: '原因',
label: '报废原因',
field: 'reason',
dictType: DICT_TYPE.SCRAP_REASON,
dictClass: 'string',
formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
return cellValue
},
table: {
width: 150
},
form: {
componentProps: {
filterable: true
}
},
tableForm: {
type: 'Select',
filterable: true
}
},
{
label: '项目订单号',
field: 'projectOrderNumber',
sort: 'custom',
isTable:false,
isForm:false,
isTableForm:false,
table: {
width: 150
},
@ -1159,6 +1183,7 @@ export const ScrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
},
isTableForm: false,
isForm: false,
isTable:false,
},
{
label: '项目代码',
@ -1169,11 +1194,15 @@ export const ScrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
},
isTableForm: false,
isForm: false,
isTable:false,
},
{
label: '明细备注',
field: 'remark',
sort: 'custom',
isTable:false,
isForm:false,
isTableForm:false,
table: {
width: 150
},
@ -1280,4 +1309,7 @@ export const ScrapRequestDetailRules = reactive({
remark: [
{ max: 50, message: '不得超过50个字符', trigger: 'blur' }
],
reason: [
{ required: true, message: '请输入报废原因', trigger: 'change' }
],
})

22
src/views/wms/inventoryjobManage/unplannedissue/unplannedissueJobMain/unplannedissueJobMain.data.ts

@ -317,17 +317,17 @@ export const UnplannedissueJobMain = useCrudSchemas(reactive<CrudSchema[]>([
width: 150
},
},
{
label: '到库区类型范围',
field: 'toAreaTypes',
dictType: DICT_TYPE.AREA_TYPE,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
},
},
// {
// label: '到库区类型范围',
// field: 'toAreaTypes',
// dictType: DICT_TYPE.AREA_TYPE,
// dictClass: 'string',
// isTable: true,
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '优先级',
field: 'priority',

1
src/views/wms/inventoryjobManage/unplannedissue/unplannedissueRequestMain/unplannedissueRequestMain.data.ts

@ -651,6 +651,7 @@ export const UnplannedissueRequestMainRules = reactive({
{ required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' }
],
remarkMain: [
{ required: true, message: '请输入单据备注', trigger: 'blur' },
{ max: 50, message: '不得超过50个字符', trigger: 'blur' }
],
usageDescription:[

1
src/views/wms/inventoryjobManage/unplannedreceipt/unplannedreceiptRequestMain/index.vue

@ -795,6 +795,7 @@ const handleImport = () => {
//
const importTemplateData = reactive({
dataType:'1',
templateUrl: '',
templateTitle: `${route.meta.title}】导入模版.xlsx`
})

1
src/views/wms/inventoryjobManage/unplannedreceipt/unplannedreceiptRequestMain/unplannedreceiptRequestMain.data.ts

@ -669,6 +669,7 @@ export const UnplannedreceiptRequestMainRules = reactive({
{ required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' }
],
remarkMain: [
{ required: true, message: '请输入单据备注', trigger: 'blur' },
{ max: 50, message: '不得超过50个字符', trigger: 'blur' }
],
usageDescription:[

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

@ -680,6 +680,14 @@ export const InventorymoveJobDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150
},
},
{
label: '供应商批次',
field: 'altBatch',
sort: 'custom',
table: {
width: 150
},
},
{
label: '包装号',
field: 'packingNumber',

8
src/views/wms/moveManage/inventorymove/inventorymoveRecordMain/inventorymoveRecordMain.data.ts

@ -473,6 +473,14 @@ export const InventorymoveRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150
},
},
{
label: '供应商批次',
field: 'altBatch',
sort: 'custom',
table: {
width: 150
},
},
{
label: '从包装号',
field: 'fromPackingNumber',

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

@ -90,6 +90,7 @@ import * as InventorymoveRequestDetailApi from '@/api/wms/inventorymoveRequestDe
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import { formatDate } from '@/utils/formatTime'
import { usePageLoading } from '@/hooks/web/usePageLoading'
import {importTemplateHoldOk} from "@/api/wms/inventorymoveRequestMain";
const { loadStart, loadDone } = usePageLoading()
//
defineOptions({ name: 'InventorymoveRequestMain' })
@ -122,8 +123,8 @@ if ( routeName.value == 'OktoholdRequestMain') {
// toInventoryStatus:'HOLD',
businessType :'OkToHold'
}
// fromInventoryStatus.value = 'OK'
// toInventoryStatus.value = "HOLD"
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "HOLD"
businessType.value = 'OkToHold'
importFileName.value = '物料转隔离申请'
}
@ -133,8 +134,8 @@ else if ( routeName.value == 'NoktoholdRequestMain') {
// toInventoryStatus:'HOLD',
businessType :'NokToHold'
}
// fromInventoryStatus.value = 'NOK'
// toInventoryStatus.value = "HOLD"
fromInventoryStatus.value = 'NOK'
toInventoryStatus.value = "HOLD"
businessType.value = 'NokToHold'
importFileName.value = '不合格转隔离申请'
}
@ -144,8 +145,8 @@ else if ( routeName.value == 'HoldtookRequestMain') {
// toInventoryStatus:'OK',
businessType :'HoldToOk'
}
// fromInventoryStatus.value = 'HOLD'
// toInventoryStatus.value = "OK"
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "OK"
businessType.value = 'HoldToOk'
importFileName.value = '隔离转合格申请'
} else if ( routeName.value == 'HoldtoscrapRequestMain') {
@ -154,8 +155,8 @@ else if ( routeName.value == 'HoldtookRequestMain') {
// toInventoryStatus:'SCRAP',
businessType:'HoldToScrap'
}
// fromInventoryStatus.value = 'HOLD'
// toInventoryStatus.value = "SCRAP"
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "SCRAP"
businessType.value = 'HoldToScrap'
importFileName.value = '隔离转报废申请'
} else if ( routeName.value == 'OktoscrapRequestMain') {
@ -164,8 +165,8 @@ else if ( routeName.value == 'HoldtookRequestMain') {
// toInventoryStatus:'SCRAP',
businessType :'OkToScrap'
}
// fromInventoryStatus.value = 'OK'
// toInventoryStatus.value = "SCRAP"
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "SCRAP"
businessType.value = 'OkToScrap'
importFileName.value = '合格转报废申请'
}
@ -175,8 +176,8 @@ else if ( routeName.value == 'ScraptoholdRequestMain') {
// toInventoryStatus:'HOLD',
businessType :'ScrapToHold'
}
// fromInventoryStatus.value = 'SCRAP'
// toInventoryStatus.value = "HOLD"
fromInventoryStatus.value = 'SCRAP'
toInventoryStatus.value = "HOLD"
businessType.value = 'ScrapToHold'
importFileName.value = '报废转隔离申请'
} else {
@ -818,9 +819,16 @@ const searchList = (model)=>{
/** 初始化 **/
onMounted(async () => {
getList()
//
if(routeName.value == "InventorymoveRequestMain"){
importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplate()
}else {
}
//
else if(routeName.value == "HoldtookRequestMain"){
console.log("sssssssssssssssss");
importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplateHoldOk()
}
else {
importTemplateData.templateUrl = await InventorymoveRequestMainApi.importTemplateExceptMove()
}
})

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

@ -123,8 +123,8 @@ if ( routeName.value == 'OktoholdRequestMain') {
// toInventoryStatus:'HOLD',
businessType :'OkToHold'
}
// fromInventoryStatus.value = 'OK'
// toInventoryStatus.value = "HOLD"
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "HOLD"
businessType.value = 'OkToHold'
importFileName.value = '物料转隔离申请'
}
@ -134,8 +134,8 @@ else if ( routeName.value == 'NoktoholdRequestMain') {
// toInventoryStatus:'HOLD',
businessType :'NokToHold'
}
// fromInventoryStatus.value = 'NOK'
// toInventoryStatus.value = "HOLD"
fromInventoryStatus.value = 'NOK'
toInventoryStatus.value = "HOLD"
businessType.value = 'NokToHold'
importFileName.value = '不合格转隔离申请'
}
@ -145,8 +145,8 @@ else if ( routeName.value == 'HoldtookRequestMain') {
// toInventoryStatus:'OK',
businessType :'HoldToOk'
}
// fromInventoryStatus.value = 'HOLD'
// toInventoryStatus.value = "OK"
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "OK"
businessType.value = 'HoldToOk'
importFileName.value = '隔离转合格申请'
} else if ( routeName.value == 'HoldtoscrapRequestMain') {
@ -155,8 +155,8 @@ else if ( routeName.value == 'HoldtookRequestMain') {
// toInventoryStatus:'SCRAP',
businessType:'HoldToScrap'
}
// fromInventoryStatus.value = 'HOLD'
// toInventoryStatus.value = "SCRAP"
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "SCRAP"
businessType.value = 'HoldToScrap'
importFileName.value = '隔离转报废申请'
} else if ( routeName.value == 'OktoscrapRequestMain') {
@ -165,8 +165,8 @@ else if ( routeName.value == 'HoldtookRequestMain') {
// toInventoryStatus:'SCRAP',
businessType :'OkToScrap'
}
// fromInventoryStatus.value = 'OK'
// toInventoryStatus.value = "SCRAP"
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "SCRAP"
businessType.value = 'OkToScrap'
importFileName.value = '合格转报废申请'
}
@ -176,8 +176,8 @@ else if ( routeName.value == 'ScraptoholdRequestMain') {
// toInventoryStatus:'HOLD',
businessType :'ScrapToHold'
}
// fromInventoryStatus.value = 'SCRAP'
// toInventoryStatus.value = "HOLD"
fromInventoryStatus.value = 'SCRAP'
toInventoryStatus.value = "HOLD"
businessType.value = 'ScrapToHold'
importFileName.value = '报废转隔离申请'
} else {

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

@ -116,15 +116,76 @@ const { tableObject, tableMethods } = useTable({
getListApi: InventorymoveRequestDetailApi.getInventorymoveRequestDetailPage //
})
tableObject.params = {
// fromInventoryStatus: 'OK',
// toInventoryStatus:'HOLD',
businessType :'OkToHold'
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 {
tableObject.params = {
businessType :'Move'
}
businessType.value = 'Move'
importFileName.value = '库存移动申请'
}
// fromInventoryStatus.value = 'OK'
// toInventoryStatus.value = "HOLD"
businessType.value = 'OkToHold'
importFileName.value = '物料转隔离申请'
InventorymoveRequestMain.allSchemas.tableFormColumns.map(item =>{
if(item.field == 'fromWarehouseCode') {

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

@ -616,6 +616,24 @@ export const InventorymoveRequestDetail = useCrudSchemas(reactive<CrudSchema[]>(
isTableForm: false,
isForm: false,
},
{
label: '供应商批次',
field: 'altBatch',
sort: 'custom',
isForm:false,
isSearch: true,
table: {
width: 150
},
form: {
componentProps: {
disabled: true
}
},
tableForm: {
disabled: true
}
},
{
label: '从包装号',
field: 'fromPackingNumber',

24
src/views/wms/productionManage/productreceiptAssemble/rawMaterialConsumptionInfo/index.vue

@ -33,6 +33,10 @@
</Table>
</ContentWrap>
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/backflush-record-detailb/importError" :importTemplateData="importTemplateData"
@success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" />
</template>
<script setup lang="ts">
@ -73,6 +77,7 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultImportBtn(null), //
defaultButtons.defaultExportBtn(null), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
@ -84,6 +89,8 @@ const HeadButttondata = [
const buttonBaseClick = (val, item) => {
if (val == 'export') { //
handleExport()
} else if (val == 'import') { //
handleImport()
} else if (val == 'refresh') { //
if (tableObject.params.filters && tableObject.params.filters.length > 0 ) {
searchFormClick({
@ -107,6 +114,22 @@ const searchFormClick = (searchData) => {
getList() //
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: `${route.meta.title}】导入模版.xlsx`
})
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importSuccess = () => {
getList()
}
const handleExport = async () => {
try {
//
@ -124,5 +147,6 @@ const handleExport = async () => {
/** 初始化 **/
onMounted(async () => {
getList()
importTemplateData.templateUrl = await RawMaterialConsumptionInfoApi.importTemplate()
})
</script>

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

@ -80,6 +80,9 @@
:buttondataTable="buttondataTable"
@tableFormButton="tableFormButton"
:detailValidate="detailValidate"
:detailButtonIsShowAdd="false"
:detailButtonIsShowEdit="false"
:detailButtonIsShowDelete="false"
/>
<!-- BOM弹窗列表 -->
@ -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)

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

@ -375,4 +375,7 @@ const changeTabs = (data) =>{
onMounted(async () => {
getList()
})
onActivated(() => {
getList()
})
</script>

3
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)

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

@ -1008,7 +1008,7 @@ export const PurchasereturnJobDetail = useCrudSchemas(reactive<CrudSchema[]>([
field: 'reason',
dictType: DICT_TYPE.PURCHASE_RETURN_REASON,
dictClass: 'string',
isTable: true,
isTable: false,
sort: 'custom',
table: {
width: 150

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

@ -197,4 +197,7 @@ const searchFormClick = (searchData) => {
onMounted(async () => {
getList()
})
onActivated(() => {
getList()
})
</script>

5
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'}), //

5
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'}), //

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

@ -568,66 +568,66 @@ export const PurchasePlanDetail = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
{
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',

3
src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/index.vue

@ -306,4 +306,7 @@ const searchFormClick = (searchData) => {
onMounted(async () => {
getList()
})
onActivated(() => {
getList()
})
</script>

14
src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue

@ -100,7 +100,19 @@
<Detail
ref="detailRef"
:annexTable="[
annexInspectionDetail
annexInspectionDetail,
{
label: '履历表',
prop: 'uploadFile',
tableName: 'SupplierdeliverCurriculumVitae',
hasSubDetail: false, //
showPreview: true, //
hiddenUpload:false,
hiddenDelete:false,
fileType: ['pdf'],
limit:999999,
align: 'left',
}
]"
:isBasic="false"
:allSchemas="SupplierdeliverRequestMain.allSchemas"

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

@ -8,12 +8,13 @@ import { PurchasePlanDetail, PurchasePlanMain } from '../purchasePlanMain/purcha
import { validateHanset, validateEmail } from '@/utils/validator'
import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data'
import * as ItemPackageApi from '@/api/wms/itempackage/index'
import { cloneDeep } from 'lodash-es'
import {validateInteger} from '@/utils/validator'
const { t } = useI18n() // 国际化
const PurchasePlanDetailSchemas = {...PurchasePlanDetail.allSchemas}
let PurchasePlanDetailSchemas = cloneDeep(PurchasePlanDetail.allSchemas)
if(PurchasePlanDetailSchemas?.tableColumns){
PurchasePlanDetailSchemas.tableColumns.splice(2, 0, {
label: '送达日期',

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

@ -66,6 +66,7 @@
prop: 'Annex',
tableName:'contract',
showDownload:true,
showPreview: true,
hiddenDelete:true,
hiddenUpload:true,
queryParams:[{
@ -77,6 +78,7 @@
prop: 'Annex',
tableName:'invoice',
showDownload:true,
showPreview: true,
hiddenDelete:true,
hiddenUpload:true,
queryParams:[{
@ -144,11 +146,11 @@
</template>
<!-- 未税尾差 -->
<template #Descriptions_beforeTaxDiffAmount="{ row }">
<span>{{row['totalTaxDiffAmount']}}<span class="red-text"> (含返利未税:{{ row['discountAmount1'] }})</span></span>
<span>{{row['beforeTaxDiffAmount']}}<span class="red-text"> (含返利未税:{{ row['discountAmount1'] }})</span></span>
</template>
<!-- 税额尾差 -->
<template #Descriptions_taxAmountDiff="{ row }">
<span>{{row['totalTaxDiffAmount']}}<span class="red-text"> (含返利税额:{{ row['rebateTax'] }})</span></span>
<span>{{row['taxAmountDiff']}}<span class="red-text"> (含返利税额:{{ row['rebateTax'] }})</span></span>
</template>
<template #differencePrice="{row}">
<span :class="{'red-text':row.differencePrice!=0}">{{ row.differencePrice }}</span>

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

@ -1234,7 +1234,7 @@ export const SupplierinvoiceRecordDetailMain = useCrudSchemas(reactive<CrudSchem
},
{
label: '折扣金额',
label: '返利未税金额',//折扣金额
field: 'discountAmount1',
formatter: accountantFormart,

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

@ -106,7 +106,9 @@
adTaxAmount: beforeTaxAmount + totalTaxAmount, //6+
beforeTaxDiffAmount: beforeTaxAmount - amount - discountAmount1, //--
taxAmountDiff: totalTaxAmount - taxAmount, // -
totalTaxDiffAmount: beforeTaxDiffAmount + taxAmountDiff // =+
totalTaxDiffAmount: beforeTaxDiffAmount + taxAmountDiff, // =+
rebateTax:Number(Number(discountAmount1*taxRate*0.01).toFixed(2)),
rebateTotal:rebateTax+discountAmount1
})
} else if (formType == 'create') {
//
@ -318,11 +320,11 @@
</template>
<!-- 未税尾差 -->
<template #Descriptions_beforeTaxDiffAmount="{ row }">
<span>{{row['totalTaxDiffAmount']}}<span class="red-text"> (含返利未税:{{ row['discountAmount1'] }})</span></span>
<span>{{row['beforeTaxDiffAmount']}}<span class="red-text"> (含返利未税:{{ row['discountAmount1'] }})</span></span>
</template>
<!-- 税额尾差 -->
<template #Descriptions_taxAmountDiff="{ row }">
<span>{{row['totalTaxDiffAmount']}}<span class="red-text"> (含返利税额:{{ row['rebateTax'] }})</span></span>
<span>{{row['taxAmountDiff']}}<span class="red-text"> (含返利税额:{{ row['rebateTax'] }})</span></span>
</template>
<template #differencePrice="{ row }">
<span :class="{ 'red-text': row.differencePrice != 0 }">{{ row.differencePrice }}</span>
@ -880,6 +882,7 @@ const detailAnnexTable = ref([
prop: 'Annex',
tableName: 'contract',
hiddenDelete: false,
showPreview: true,
hiddenUpload: false,
fileSize: 20
},
@ -889,6 +892,7 @@ const detailAnnexTable = ref([
tableName: 'invoice',
hiddenDelete: false,
hiddenUpload: false,
showPreview: true,
fileSize: 20,
fileType:['pdf']
},
@ -1071,13 +1075,20 @@ const handleFinanceApp = async (row) => {
const submitFormFinance = async (formType, submitData) => {
let data = { ...submitData }
console.log('submitFormFinance', data)
await SupplierinvoiceRequestMainApi.financeappSupplierinvoiceRequestMain({
id: data.id,
postingDate: data.postingDate,
voucherNumberRemark: data.voucherNumberRemark
})
formFinanceRef.value.dialogVisible = false
getList()
formFinanceRef.value.formLoading = true
try {
await SupplierinvoiceRequestMainApi.financeappSupplierinvoiceRequestMain({
id: data.id,
postingDate: data.postingDate,
voucherNumberRemark: data.voucherNumberRemark
})
formFinanceRef.value.dialogVisible = false
formFinanceRef.value.formLoading = false
getList()
} catch {
formFinanceRef.value.formLoading = false
}
// try {
// //
// await message.confirm(t('ts.'))

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

@ -1523,7 +1523,7 @@ export const SupplierinvoiceRequestDetailMain = useCrudSchemas(reactive<CrudSche
},
{
label: '折扣金额',
label: '返利未税金额',
field: 'discountAmount1',
formatter: accountantFormart,
@ -1611,6 +1611,16 @@ function validateTaxRate(rule, value, callback) {
}
}
const validateGoldenTaxInvoiceNumber = (rule, value, callback) => {
const reg = /^[1-9][0-9]*$/
if (!value||reg.test(value)) {
callback()
}else{
callback(new Error('只能是数字'))
}
}
//表单校验
export const SupplierinvoiceRequestMainRules = reactive({
taxRate: [
@ -1624,7 +1634,8 @@ export const SupplierinvoiceRequestMainRules = reactive({
{ required: false, message: '请选择发票日期', trigger: 'blur' }
],
goldenTaxInvoiceNumber:[
{ required: false, message: '请输入金税票号', trigger: 'blur' }
{ required: false, message: '请输入金税票号', trigger: 'blur' },
{ validator:validateGoldenTaxInvoiceNumber, message: '金税票号只能是数字', trigger: 'blur'}
],
departmentCode: [
{ required: true, message: '请输入部门', trigger: 'blur' }

6
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMainDifference/index.vue

@ -126,11 +126,11 @@
</template>
<!-- 未税尾差 -->
<template #Descriptions_beforeTaxDiffAmount="{ row }">
<span>{{row['totalTaxDiffAmount']}}<span class="red-text"> (含返利未税:{{ row['discountAmount1'] }})</span></span>
<span>{{row['beforeTaxDiffAmount']}}<span class="red-text"> (含返利未税:{{ row['discountAmount1'] }})</span></span>
</template>
<!-- 税额尾差 -->
<template #Descriptions_taxAmountDiff="{ row }">
<span>{{row['totalTaxDiffAmount']}}<span class="red-text"> (含返利税额:{{ row['rebateTax'] }})</span></span>
<span>{{row['taxAmountDiff']}}<span class="red-text"> (含返利税额:{{ row['rebateTax'] }})</span></span>
</template>
<template #differencePrice="{row}">
<span :class="{'red-text':row.differencePrice!=0}">{{ row.differencePrice }}</span>
@ -293,6 +293,7 @@ const searchTableSuccessDetail = async (formField, searchField, val, formRef,sea
tableName:'contract',
hiddenDelete:true,
hiddenUpload:true,
showPreview: true,
fileSize:20
},{
label: t('ts.发票附件'),
@ -300,6 +301,7 @@ const searchTableSuccessDetail = async (formField, searchField, val, formRef,sea
tableName:'invoice',
hiddenDelete:true,
hiddenUpload:true,
showPreview: true,
fileSize:20
},{

4
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMainDifference/supplierinvoiceRequestMainDifference.data.ts

@ -426,7 +426,7 @@ export const SupplierinvoiceRequestMain = useCrudSchemas(reactive<CrudSchema[]>(
// }
// },
{
label: '折扣金额',
label: '返利未税金额',
field: 'discountAmount1',
formatter: accountantFormart,
table: {
@ -1505,7 +1505,7 @@ export const SupplierinvoiceRequestDetailMain = useCrudSchemas(reactive<CrudSche
},
{
label: '折扣金额',
label: '返利未税金额',
field: 'discountAmount1',
formatter: accountantFormart,

Loading…
Cancel
Save