Browse Source

qww

master_hella_20240701
zhousq 7 months ago
parent
commit
e103c0816f
  1. 6
      .env.hella15
  2. 6
      .env.hella16
  3. 2
      README.md
  4. 24
      nginx_prod.conf
  5. 5
      src/api/eam/basicDocumentType/index.ts
  6. 5
      src/api/eam/basicFaultCause/index.ts
  7. 5
      src/api/eam/basicFaultType/index.ts
  8. 5
      src/api/eam/equipmentMainPart/index.ts
  9. 5
      src/api/eam/equipmentManufacturer/index.ts
  10. 5
      src/api/eam/equipmentSupplier/index.ts
  11. 62
      src/api/eam/inspectionItem/index.ts
  12. 62
      src/api/eam/spotCheckItem/index.ts
  13. 6
      src/api/qms/inspectionJob/inspectionJobMain/index.ts
  14. 2
      src/components/Annex/src/Annex.vue
  15. 5
      src/components/Descriptions/src/Descriptions.vue
  16. 4
      src/components/Detail/src/Detail.vue
  17. 5
      src/components/DictTag/src/DictTag.vue
  18. 5
      src/components/Remarks/src/Remarks.vue
  19. 2
      src/components/TableForm/src/TableForm.vue
  20. 3
      src/components/Tabs/src/Tabs.vue
  21. 15
      src/components/UploadFile/src/UploadFile.vue
  22. 24
      src/locales/en-US.ts
  23. 24
      src/locales/zh-CN.ts
  24. 4
      src/utils/dict.ts
  25. 2
      src/utils/disposition/defaultButtons.ts
  26. 20
      src/views/eam/basicDocumentType/basicDocumentType.data.ts
  27. 15
      src/views/eam/basicFaultCause/basicFaultCause.data.ts
  28. 15
      src/views/eam/basicFaultType/basicFaultType.data.ts
  29. 2
      src/views/eam/basicInspectionOption/basicInspectionOption.data.ts
  30. 2
      src/views/eam/basicMaintenanceOption/basicMaintenanceOption.data.ts
  31. 25
      src/views/eam/equipmentMainPart/equipmentMainPart.data.ts
  32. 40
      src/views/eam/equipmentManufacturer/equipmentManufacturer.data.ts
  33. 33
      src/views/eam/equipmentManufacturer/index.vue
  34. 40
      src/views/eam/equipmentSupplier/equipmentSupplier.data.ts
  35. 32
      src/views/eam/equipmentSupplier/index.vue
  36. 271
      src/views/eam/inspectionItem/index.vue
  37. 110
      src/views/eam/inspectionItem/inspectionItem.data.ts
  38. 270
      src/views/eam/spotCheckItem/index.vue
  39. 104
      src/views/eam/spotCheckItem/spotCheckItem.data.ts
  40. 3
      src/views/home/components/supplierIndex.vue
  41. 33
      src/views/mes/orderDay/components/schedule.vue
  42. 36
      src/views/mes/orderDay/index.vue
  43. 3
      src/views/mes/orderDay/orderDay.data.ts
  44. 5
      src/views/mes/workScheduling/components/qualifiedCheck.vue
  45. 28
      src/views/qms/inspectionJob/addForm.vue
  46. 24
      src/views/qms/inspectionJob/index.vue
  47. 1
      src/views/wms/deliversettlementManage/deliver/deliverRequestMain/deliverRequestMain.data.ts
  48. 3
      src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue
  49. 17
      src/views/wms/deliversettlementManage/saleShipmentMainRecord/index.vue
  50. 3
      src/views/wms/deliversettlementManage/saleShipmentMainRecord/saleShipmentMainRecord.data.ts
  51. 2
      src/views/wms/deliversettlementManage/saleShipmentMainRequest/index.vue
  52. 6
      src/views/wms/deliversettlementManage/saleShipmentMainRequest/saleShipmentMain.data.ts
  53. 5
      src/views/wms/inventoryjobManage/containermanage/containerMainRequest/containerMainRequest.data.ts
  54. 3
      src/views/wms/productionManage/productscrap/productscrapRecordMain/index.vue
  55. 2
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue

6
.env.hella15

@ -4,10 +4,10 @@ NODE_ENV=production
VITE_DEV=false VITE_DEV=false
# 请求路径 # 请求路径
VITE_BASE_URL='http://172.21.32.15/api' VITE_BASE_URL='https://172.21.32.15:55563/api'
# 上传路径 # 上传路径
VITE_UPLOAD_URL='http://172.21.32.15/api/admin-api/infra/file/upload' VITE_UPLOAD_URL='https://172.21.32.15:55563/api/admin-api/infra/file/upload'
# 接口前缀 # 接口前缀
VITE_API_BASEPATH= VITE_API_BASEPATH=
@ -37,4 +37,4 @@ VITE_INTERFACE_URL='http://172.21.32.15:90/magic/web/index.html'
VITE_JMREPORT_BASE_URL='http://172.21.32.15:90' VITE_JMREPORT_BASE_URL='http://172.21.32.15:90'
# 租户配置 # 租户配置
VITE_TENANT='["长春"]' VITE_TENANT='["长春","成都"]'

6
.env.hella16

@ -4,10 +4,10 @@ NODE_ENV=production
VITE_DEV=false VITE_DEV=false
# 请求路径 # 请求路径
VITE_BASE_URL='http://172.21.32.16/api' VITE_BASE_URL='https://172.21.32.16:55563/api'
# 上传路径 # 上传路径
VITE_UPLOAD_URL='http://172.21.32.16/api/admin-api/infra/file/upload' VITE_UPLOAD_URL='https://172.21.32.16:55563/api/admin-api/infra/file/upload'
# 接口前缀 # 接口前缀
VITE_API_BASEPATH= VITE_API_BASEPATH=
@ -37,4 +37,4 @@ VITE_INTERFACE_URL='http://172.21.32.16:90/magic/web/index.html'
VITE_JMREPORT_BASE_URL='http://172.21.32.16:90' VITE_JMREPORT_BASE_URL='http://172.21.32.16:90'
# 租户配置 # 租户配置
VITE_TENANT='["长春"]' VITE_TENANT='["长春","成都"]'

2
README.md

@ -1,4 +1,4 @@
## dev发布2024-05-15-004 ## dev发布2024-05-16-002
**xxxx.data.ts 文件配置说明** **xxxx.data.ts 文件配置说明**
**form表单查询弹窗配置** **form表单查询弹窗配置**
form: { form: {

24
nginx_prod.conf

@ -49,5 +49,29 @@ http {
index index.html index.htm; index index.html index.htm;
} }
} }
server {
listen 55563 ssl;
server_name_in_redirect off;
server_name _;
ssl_certificate /opt/faway-hella/faway-hella.com.pem;
ssl_certificate_key /opt/faway-hella/faway-hella.com.key;
location /api/ {
proxy_pass http://sfms3.0/;
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
}
location /profile/ {
alias /opt/profile/;
index index.html index.htm;
}
location / {
try_files $uri $uri/ /index.html;
root /opt/sfms3.0;
index index.html index.htm;
}
}
} }

5
src/api/eam/basicDocumentType/index.ts

@ -48,7 +48,12 @@ export const deleteDocumentType = async (id: number) => {
// 导出文档类型 Excel // 导出文档类型 Excel
export const exportDocumentType = async (params) => { export const exportDocumentType = async (params) => {
if (params.isSearch) {
const data = {...params}
return await request.downloadPost({ url: `/eam/document-type/export-excel-senior`, data })
}else{
return await request.download({ url: `/eam/document-type/export-excel`, params }) return await request.download({ url: `/eam/document-type/export-excel`, params })
}
} }
// 下载用户导入模板 // 下载用户导入模板

5
src/api/eam/basicFaultCause/index.ts

@ -49,7 +49,12 @@ export const deleteBasicFaultCause = async (id: number) => {
// 导出故障原因 Excel // 导出故障原因 Excel
export const exportBasicFaultCause = async (params) => { export const exportBasicFaultCause = async (params) => {
if (params.isSearch) {
const data = {...params}
return await request.downloadPost({ url: `/eam/basic-fault-cause/export-excel-senior`, data })
}else{
return await request.download({ url: `/eam/basic-fault-cause/export-excel`, params }) return await request.download({ url: `/eam/basic-fault-cause/export-excel`, params })
}
} }
// 下载用户导入模板 // 下载用户导入模板

5
src/api/eam/basicFaultType/index.ts

@ -48,7 +48,12 @@ export const deleteBasicFaultType = async (id: number) => {
// 导出故障类型 Excel // 导出故障类型 Excel
export const exportBasicFaultType = async (params) => { export const exportBasicFaultType = async (params) => {
if (params.isSearch) {
const data = {...params}
return await request.downloadPost({ url: `/eam/basic-fault-type/export-excel-senior`, data })
}else{
return await request.download({ url: `/eam/basic-fault-type/export-excel`, params }) return await request.download({ url: `/eam/basic-fault-type/export-excel`, params })
}
} }
// 下载用户导入模板 // 下载用户导入模板

5
src/api/eam/equipmentMainPart/index.ts

@ -48,7 +48,12 @@ export const deleteEquipmentMainPart = async (id: number) => {
// 导出主要部件 Excel // 导出主要部件 Excel
export const exportEquipmentMainPart = async (params) => { export const exportEquipmentMainPart = async (params) => {
if (params.isSearch) {
const data = {...params}
return await request.downloadPost({ url: `/eam/equipment-main-part/export-excel-senior`, data })
}else{
return await request.download({ url: `/eam/equipment-main-part/export-excel`, params }) return await request.download({ url: `/eam/equipment-main-part/export-excel`, params })
}
} }
// 下载用户导入模板 // 下载用户导入模板

5
src/api/eam/equipmentManufacturer/index.ts

@ -54,7 +54,12 @@ export const deleteEquipmentManufacturer = async (id: number) => {
// 导出设备制造商 Excel // 导出设备制造商 Excel
export const exportEquipmentManufacturer = async (params) => { export const exportEquipmentManufacturer = async (params) => {
if (params.isSearch) {
const data = { ...params }
return await request.downloadPost({ url: `/eam/basic/equipment-manufacturer/export-excel-senior`, data })
} else {
return await request.download({ url: `/eam/basic/equipment-manufacturer/export-excel`, params }) return await request.download({ url: `/eam/basic/equipment-manufacturer/export-excel`, params })
}
} }
// 下载用户导入模板 // 下载用户导入模板

5
src/api/eam/equipmentSupplier/index.ts

@ -54,7 +54,12 @@ export const deleteEquipmentSupplier = async (id: number) => {
// 导出供应商 Excel // 导出供应商 Excel
export const exportEquipmentSupplier = async (params) => { export const exportEquipmentSupplier = async (params) => {
if (params.isSearch) {
const data = { ...params }
return await request.downloadPost({ url: `/eam/basic/equipment-supplier/export-excel-senior`, data })
} else {
return await request.download({ url: `/eam/basic/equipment-supplier/export-excel`, params }) return await request.download({ url: `/eam/basic/equipment-supplier/export-excel`, params })
}
} }
// 下载用户导入模板 // 下载用户导入模板

62
src/api/eam/inspectionItem/index.ts

@ -0,0 +1,62 @@
import request from '@/config/axios'
export interface InspectionItemVO {
id: number
content: string
equipmentParts: string
serialNumber: number
category: string
departmentCode: string
remark: string
siteId: string
available: string
deletionTime: Date
deleterId: byte[]
concurrencyStamp: number
}
// 查询巡检项列表
export const getInspectionItemPage = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
return await request.post({ url: '/eam/basic/inspection-item/senior', data })
} else {
return await request.get({ url: `/eam/basic/inspection-item/page`, params })
}
}
// 查询巡检项详情
export const getInspectionItem = async (id: number) => {
return await request.get({ url: `/eam/basic/inspection-item/get?id=` + id })
}
// 新增巡检项
export const createInspectionItem = async (data: InspectionItemVO) => {
return await request.post({ url: `/eam/basic/inspection-item/create`, data })
}
// 修改巡检项
export const updateInspectionItem = async (data: InspectionItemVO) => {
return await request.put({ url: `/eam/basic/inspection-item/update`, data })
}
// 删除巡检项
export const deleteInspectionItem = async (id: number) => {
return await request.delete({ url: `/eam/basic/inspection-item/delete?id=` + id })
}
// 导出巡检项 Excel
export const exportInspectionItem = async (params) => {
if (params.isSearch) {
const data = { ...params }
return await request.downloadPost({ url: `/eam/basic/inspection-item/export-excel-senior`, data })
} else {
return await request.download({ url: `/eam/basic/inspection-item/export-excel`, params })
}
}
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/eam/basic/inspection-item/get-import-template' })
}

62
src/api/eam/spotCheckItem/index.ts

@ -0,0 +1,62 @@
import request from '@/config/axios'
export interface SpotCheckItemVO {
id: number
content: string
equipmentParts: string
serialNumber: number
departmentCode: string
remark: string
siteId: string
available: string
deletionTime: Date
deleterId: byte[]
concurrencyStamp: number
}
// 查询点检项列表
export const getSpotCheckItemPage = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
return await request.post({ url: '/eam/basic/spot-check-item/senior', data })
} else {
return await request.get({ url: `/eam/basic/spot-check-item/page`, params })
}
}
// 查询点检项详情
export const getSpotCheckItem = async (id: number) => {
return await request.get({ url: `/eam/basic/spot-check-item/get?id=` + id })
}
// 新增点检项
export const createSpotCheckItem = async (data: SpotCheckItemVO) => {
return await request.post({ url: `/eam/basic/spot-check-item/create`, data })
}
// 修改点检项
export const updateSpotCheckItem = async (data: SpotCheckItemVO) => {
return await request.put({ url: `/eam/basic/spot-check-item/update`, data })
}
// 删除点检项
export const deleteSpotCheckItem = async (id: number) => {
return await request.delete({ url: `/eam/basic/spot-check-item/delete?id=` + id })
}
// 导出点检项 Excel
export const exportSpotCheckItem = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = { ...params }
return await request.downloadPost({ url: `/eam/basic/spot-check-item/export-excel-senior`, data })
} else {
return await request.download({ url: `/eam/basic/spot-check-item/export-excel`, params })
}
}
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/eam/basic/spot-check-item/get-import-template' })
}

6
src/api/qms/inspectionJob/inspectionJobMain/index.ts

@ -51,12 +51,14 @@ export const abandonInspectionJobMain = async (id) => {
export const closeInspectionJobMain = async (id) => { export const closeInspectionJobMain = async (id) => {
return await request.put({ url: `/qms/inspection-job-main/close?id=` + id }) return await request.put({ url: `/qms/inspection-job-main/close?id=` + id })
} }
// 发布检验任务
export const releaseInspectionJobMain = async (id) => {
return await request.put({ url: `/qms/inspection-job-main/release?id=` + id })
}
// 导出检验申请 Excel // 导出检验申请 Excel
export const exportInspectionJobMain = async (params) => { export const exportInspectionJobMain = async (params) => {
return await request.download({ url: `/qms/inspection-job-main/export-excel`, params }) return await request.download({ url: `/qms/inspection-job-main/export-excel`, params })
} }
// 下载用户导入模板 // 下载用户导入模板
export const importTemplate = () => { export const importTemplate = () => {
return request.download({ url: '/qms/inspection-job-main/get-import-template' }) return request.download({ url: '/qms/inspection-job-main/get-import-template' })

2
src/components/Annex/src/Annex.vue

@ -3,7 +3,7 @@
<div class="annex"> <div class="annex">
<div class="title flex items-center"> <div class="title flex items-center">
<!-- <div class="title-txt">附件</div> --> <!-- <div class="title-txt">附件</div> -->
<UploadFile :isShowFile="false" :isShowTip="false" :fileType="fileType" title="添加附件" :upData="upData" :limit="10" <UploadFile :isShowFile="false" :isShowTip="false" :fileType="fileType" :title="t('ts.添加附件')" :upData="upData" :limit="10"
@update:modelValue="handleAnnexSuccess" v-if="annexData.annexList.length<5"/> @update:modelValue="handleAnnexSuccess" v-if="annexData.annexList.length<5"/>
</div> </div>
<div class="list"> <div class="list">

5
src/components/Descriptions/src/Descriptions.vue

@ -5,6 +5,7 @@ import { useDesign } from '@/hooks/web/useDesign'
import { propTypes } from '@/utils/propTypes' import { propTypes } from '@/utils/propTypes'
import { useAppStore } from '@/store/modules/app' import { useAppStore } from '@/store/modules/app'
import { DescriptionsSchema } from '@/types/descriptions' import { DescriptionsSchema } from '@/types/descriptions'
const { t } = useI18n() //
defineOptions({ name: 'Descriptions' }) defineOptions({ name: 'Descriptions' })
@ -99,7 +100,7 @@ const showAll = () =>{
> >
<div :class="[`${prefixCls}-header__title`, 'relative font-18px font-bold ml-10px']"> <div :class="[`${prefixCls}-header__title`, 'relative font-18px font-bold ml-10px']">
<div class="flex items-center"> <div class="flex items-center">
{{ title }} {{ t(`ts.${title}`).replace('ts.', '') }}
<ElTooltip v-if="message" :content="message" placement="right"> <ElTooltip v-if="message" :content="message" placement="right">
<Icon class="ml-5px" icon="ep:warning" /> <Icon class="ml-5px" icon="ep:warning" />
</ElTooltip> </ElTooltip>
@ -133,7 +134,7 @@ const showAll = () =>{
:row="{ :row="{
label: item.label label: item.label
}" }"
>{{ item.label }} >{{ t(`ts.${item.label}`).replace('ts.', '') }}
</slot> </slot>
</template> </template>

4
src/components/Detail/src/Detail.vue

@ -2,14 +2,14 @@
<div> <div>
<el-drawer <el-drawer
v-model="isShowDrawer" v-model="isShowDrawer"
title="详情" :title="t(`ts.详情`).replace('ts.','')"
direction="rtl" direction="rtl"
size="80%" size="80%"
v-loading="detailLoading" v-loading="detailLoading"
> >
<template #header> <template #header>
<div class="font-size-18px"> <div class="font-size-18px">
{{ titleValueRef }} <span class="ml-20px font-size-16px">{{ titleNameRef }}</span> {{ titleValueRef }} <span class="ml-20px font-size-16px">{{ t(`ts.${titleNameRef}`).replace('ts.','') }}</span>
</div> </div>
</template> </template>
<Tabs ref="tabRef" :tabsList="tabsList" :current="current" @change="change" /> <Tabs ref="tabRef" :tabsList="tabsList" :current="current" @change="change" />

5
src/components/DictTag/src/DictTag.vue

@ -3,6 +3,7 @@ import { defineComponent, PropType, ref } from 'vue'
import { isHexColor } from '@/utils/color' import { isHexColor } from '@/utils/color'
import { ElTag } from 'element-plus' import { ElTag } from 'element-plus'
import { DictDataType, getDictOptions } from '@/utils/dict' import { DictDataType, getDictOptions } from '@/utils/dict'
const { t } = useI18n() //
export default defineComponent({ export default defineComponent({
name: 'DictTag', name: 'DictTag',
@ -55,7 +56,7 @@ export default defineComponent({
} }
disableTransitions={true} disableTransitions={true}
> >
{dictData.value?.label} {t(`ts.${dictData.value?.label}`).replace('ts.', '')}
</ElTag> </ElTag>
) )
} else { } else {
@ -71,7 +72,7 @@ export default defineComponent({
} }
disableTransitions={true} disableTransitions={true}
> >
{item?.label} {t(`ts.${item?.label}`).replace('ts.', '')}
</ElTag> </ElTag>
}) })
) )

5
src/components/Remarks/src/Remarks.vue

@ -20,9 +20,9 @@
</div> </div>
</div> </div>
<div class="add-remarks flex items-center mt-20px"> <div class="add-remarks flex items-center mt-20px">
<el-input v-model="data.remark" placeholder="请输入备注" /> <el-input v-model="data.remark" :placeholder="t('ts.请输入备注')" />
<el-button class="ml-16px" type="primary" @click="handleSubmitrRemarks" > <el-button class="ml-16px" type="primary" @click="handleSubmitrRemarks" >
确定 {{t('ts.确定')}}
</el-button> </el-button>
</div> </div>
</div> </div>
@ -32,6 +32,7 @@
const message = useMessage() // const message = useMessage() //
import * as RemarkApi from '@/api/wms/remark' import * as RemarkApi from '@/api/wms/remark'
import { formatDate } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
const { t } = useI18n() //
defineComponent({ defineComponent({
name: 'Annex' name: 'Annex'

2
src/components/TableForm/src/TableForm.vue

@ -303,7 +303,7 @@
<div class="button flex" v-if="isShowButton"> <div class="button flex" v-if="isShowButton">
<div class="p-12px" @click="handleAddTable"> <div class="p-12px" @click="handleAddTable">
<Icon icon="ep:circle-plus" color="#409eff" size="26" style="cursor: pointer;" /> <Icon icon="ep:circle-plus" color="#409eff" size="26" style="cursor: pointer;" />
<div>添加明细</div> <div>{{t('ts.添加明细')}}</div>
</div> </div>
</div> </div>
</div> </div>

3
src/components/Tabs/src/Tabs.vue

@ -1,7 +1,7 @@
<!-- tabs组件 --> <!-- tabs组件 -->
<template> <template>
<div class="tabs flex items-center"> <div class="tabs flex items-center">
<div :class="current == index ? 'active' : ''" v-for="(item, index) in tabsList" :key="index" @click="change(item, index)">{{ item.label }}</div> <div :class="current == index ? 'active' : ''" v-for="(item, index) in tabsList" :key="index" @click="change(item, index)">{{ t(`ts.${item.label}`).replace('ts.','') }}</div>
</div> </div>
</template> </template>
@ -9,6 +9,7 @@
// const message = useMessage() // // const message = useMessage() //
import { emit } from "process"; import { emit } from "process";
const { t } = useI18n() //
// const { t } = useI18n() // // const { t } = useI18n() //
defineComponent({ defineComponent({

15
src/components/UploadFile/src/UploadFile.vue

@ -42,6 +42,7 @@ import { PropType } from 'vue'
import { propTypes } from '@/utils/propTypes' import { propTypes } from '@/utils/propTypes'
import { getAccessToken, getTenantId } from '@/utils/auth' import { getAccessToken, getTenantId } from '@/utils/auth'
import type { UploadInstance, UploadUserFile, UploadProps, UploadRawFile } from 'element-plus' import type { UploadInstance, UploadUserFile, UploadProps, UploadRawFile } from 'element-plus'
const { t } = useI18n() //
defineOptions({ name: 'UploadFile' }) defineOptions({ name: 'UploadFile' })
@ -78,7 +79,7 @@ const uploadHeaders = ref({
// //
const beforeUpload: UploadProps['beforeUpload'] = (file: UploadRawFile) => { const beforeUpload: UploadProps['beforeUpload'] = (file: UploadRawFile) => {
if (fileList.value.length >= props.limit) { if (fileList.value.length >= props.limit) {
message.error(`上传文件数量不能超过${props.limit}!`) message.error(`${t('ts.上传文件数量不能超过')}${props.limit}!`)
return false return false
} }
let fileExtension = '' let fileExtension = ''
@ -91,14 +92,14 @@ const beforeUpload: UploadProps['beforeUpload'] = (file: UploadRawFile) => {
}) })
const isLimit = file.size < props.fileSize * 1024 * 1024 const isLimit = file.size < props.fileSize * 1024 * 1024
if (!isImg) { if (!isImg) {
message.error(`文件格式不正确, 请上传${props.fileType.join('/')}格式!`) message.error(`${t(`ts.${'文件格式不正确, 请上传'}`)}${props.fileType.join('/')}${t('ts.格式')}!`)
return false return false
} }
if (!isLimit) { if (!isLimit) {
message.error(`上传文件大小不能超过${props.fileSize}MB!`) message.error(`${t('ts.上传文件大小不能超过')}${props.fileSize}MB!`)
return false return false
} }
message.success('正在上传文件,请稍候...') message.success(t(`ts.${'正在上传文件,请稍候'}`))
uploadNumber.value++ uploadNumber.value++
} }
// //
@ -107,7 +108,7 @@ const beforeUpload: UploadProps['beforeUpload'] = (file: UploadRawFile) => {
// } // }
// //
const handleFileSuccess: UploadProps['onSuccess'] = (res: any,uploadFile: any): void => { const handleFileSuccess: UploadProps['onSuccess'] = (res: any,uploadFile: any): void => {
message.success('上传成功') message.success(t('ts.上传成功'))
const fileListNew = fileList.value const fileListNew = fileList.value
fileListNew.pop() fileListNew.pop()
fileList.value = fileListNew fileList.value = fileListNew
@ -121,11 +122,11 @@ const handleFileSuccess: UploadProps['onSuccess'] = (res: any,uploadFile: any):
} }
// //
const handleExceed: UploadProps['onExceed'] = (): void => { const handleExceed: UploadProps['onExceed'] = (): void => {
message.error(`上传文件数量不能超过${props.limit}!`) message.error(`${t('ts.上传文件数量不能过')}${props.limit}!`)
} }
// //
const excelUploadError: UploadProps['onError'] = (): void => { const excelUploadError: UploadProps['onError'] = (): void => {
message.error('导入数据失败,请您重新上传!') message.error(t(`ts.导入数据失败,请您重新上传`))
} }
// //
const handleRemove = (file) => { const handleRemove = (file) => {

24
src/locales/en-US.ts

@ -1063,6 +1063,30 @@ export default {
:'Purchasing price approver', :'Purchasing price approver',
:'Supplier\'s invoice number', :'Supplier\'s invoice number',
:'loading', :'loading',
:'Please enter remarks',
'正在上传文件,请稍候':'Please wait while uploading files',
:'upload successful',
:'The number of uploaded files cannot exceed',
'导入数据失败,请您重新上传':'Failed to import data, please upload again!',
:'The size of the uploaded file cannot exceed',
'文件格式不正确, 请上传':'The file format is incorrect. Please upload it in',
:'format',
:'consignee',
:'phone',
:'delivery date',
:'Platform code',
:'Deadline',
:'Warehouse code',
'ERP单据号(无用)':'ERP document number (useless)',
:'Supplier approver',
:'Supplier approval time',
:'courier number',
:'Invoicing calendar management',
:'description'
}, },

24
src/locales/zh-CN.ts

@ -1063,6 +1063,30 @@ export default {
:'采购价格审批人', :'采购价格审批人',
:'供应商发货单号', :'供应商发货单号',
:'加载中', :'加载中',
:'请输入备注',
'正在上传文件,请稍候':'正在上传文件,请稍候...',
:'上传成功',
:'上传文件数量不能超过',
'导入数据失败,请您重新上传':'导入数据失败,请您重新上传!',
:'上传文件大小不能超过',
'文件格式不正确, 请上传':'文件格式不正确, 请上传',
:'格式',
:'收货人',
:'联系电话',
:'送达日期',
:'月台代码',
:'截止日期',
:'仓库代码',
'ERP单据号(无用)':'ERP单据号(无用)',
:'供应商审批人',
:'供应商审批时间',
:'快递单号',
:'开票日历管理',
:'描述'
}, },

4
src/utils/dict.ts

@ -337,4 +337,8 @@ export enum DICT_TYPE {
INTERFACE_STATUS = 'interfaceStatus', // 接口调用信息 接口状态 INTERFACE_STATUS = 'interfaceStatus', // 接口调用信息 接口状态
SYSTEM_DAY = 'system_day', // 系统天数 SYSTEM_DAY = 'system_day', // 系统天数
PURCHASE_INVOICE_ORDER_TYPE = 'purchase_invoice_order_type', // 发票采购订单类型 PURCHASE_INVOICE_ORDER_TYPE = 'purchase_invoice_order_type', // 发票采购订单类型
// ========== eam - 业务 - ==========
DEVICE_TYPE = 'device_type', // 设备类型
} }

2
src/utils/disposition/defaultButtons.ts

@ -269,7 +269,7 @@ export function mainListEnableBtn(option:any) {
label: t(`ts.启用`).replace('ts.', ''), label: t(`ts.启用`).replace('ts.', ''),
name: 'enable', name: 'enable',
hide: false, hide: false,
type: 'danger', type: 'success',
color: '', color: '',
link: true, // 文本展现按钮 link: true, // 文本展现按钮
hasPermi: '' hasPermi: ''

20
src/views/eam/basicDocumentType/basicDocumentType.data.ts

@ -35,7 +35,12 @@ export const DocumentType = useCrudSchemas(reactive<CrudSchema[]>([
label: '类型设备', label: '类型设备',
field: 'type', field: 'type',
sort: 'custom', sort: 'custom',
dictType: DICT_TYPE.DEVICE_TYPE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isSearch: true, isSearch: true,
form: {
component: 'Select'
}
}, },
{ {
label: '创建时间', label: '创建时间',
@ -81,14 +86,13 @@ export const DocumentType = useCrudSchemas(reactive<CrudSchema[]>([
label: '是否可用', label: '是否可用',
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
form: { dictType: DICT_TYPE.TRUE_FALSE,
component: 'Switch', dictClass: 'string', // 默认都是字符串类型其他暂不考虑
value: 'TRUE', isTable: true,
componentProps: { isDetail: false,
inactiveValue: 'FALSE', isSearch: false,
activeValue: 'TRUE' isTableForm: false,
} isForm: false,
},
}, },
{ {
label: '删除时间', label: '删除时间',

15
src/views/eam/basicFaultCause/basicFaultCause.data.ts

@ -92,14 +92,13 @@ export const BasicFaultCause = useCrudSchemas(reactive<CrudSchema[]>([
label: '是否可用', label: '是否可用',
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
form: { dictType: DICT_TYPE.TRUE_FALSE,
component: 'Switch', dictClass: 'string', // 默认都是字符串类型其他暂不考虑
value: 'TRUE', isTable: true,
componentProps: { isDetail: false,
inactiveValue: 'FALSE', isSearch: false,
activeValue: 'TRUE' isTableForm: false,
} isForm: false,
},
}, },
{ {
label: '删除时间', label: '删除时间',

15
src/views/eam/basicFaultType/basicFaultType.data.ts

@ -79,14 +79,13 @@ export const BasicFaultType = useCrudSchemas(reactive<CrudSchema[]>([
label: '是否可用', label: '是否可用',
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
form: { dictType: DICT_TYPE.TRUE_FALSE,
component: 'Switch', dictClass: 'string', // 默认都是字符串类型其他暂不考虑
value: 'TRUE', isTable: true,
componentProps: { isDetail: false,
inactiveValue: 'FALSE', isSearch: false,
activeValue: 'TRUE' isTableForm: false,
} isForm: false,
},
}, },
{ {
label: '删除时间', label: '删除时间',

2
src/views/eam/basicInspectionOption/basicInspectionOption.data.ts

@ -51,7 +51,7 @@ export const BasicInspectionOption = useCrudSchemas(reactive<CrudSchema[]>([
}, },
}, },
{ {
label: '来源于类型配置', label: '巡检项',
field: 'type', field: 'type',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,

2
src/views/eam/basicMaintenanceOption/basicMaintenanceOption.data.ts

@ -51,7 +51,7 @@ export const BasicMaintenanceOption = useCrudSchemas(reactive<CrudSchema[]>([
}, },
}, },
{ {
label: '来源于类型配置', label: '保养项',
field: 'type', field: 'type',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,

25
src/views/eam/equipmentMainPart/equipmentMainPart.data.ts

@ -31,10 +31,15 @@ export const EquipmentMainPart = useCrudSchemas(reactive<CrudSchema[]>([
isSearch: true, isSearch: true,
}, },
{ {
label: '设备工装枚举', label: '类型',
field: 'type', field: 'type',
sort: 'custom', sort: 'custom',
dictType: DICT_TYPE.DEVICE_TYPE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isSearch: true, isSearch: true,
form: {
component: 'Select'
}
}, },
{ {
label: '创建时间', label: '创建时间',
@ -77,18 +82,16 @@ export const EquipmentMainPart = useCrudSchemas(reactive<CrudSchema[]>([
isDetail:false, isDetail:false,
}, },
{ {
label: '是否用', label: '是否用',
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
isSearch: true, dictType: DICT_TYPE.TRUE_FALSE,
form: { dictClass: 'string', // 默认都是字符串类型其他暂不考虑
component: 'Switch', isTable: true,
value: 'TRUE', isDetail: false,
componentProps: { isSearch: false,
inactiveValue: 'FALSE', isTableForm: false,
activeValue: 'TRUE' isForm: false,
}
},
}, },
{ {
label: '删除时间', label: '删除时间',

40
src/views/eam/equipmentManufacturer/equipmentManufacturer.data.ts

@ -82,7 +82,10 @@ export const EquipmentManufacturer = useCrudSchemas(reactive<CrudSchema[]>([
label: '部门', label: '部门',
field: 'departmentCode', field: 'departmentCode',
sort: 'custom', sort: 'custom',
isSearch: true, isTable: false,
isDetail: false,
isSearch: false,
isTableForm: false,
form: { form: {
component: 'TreeSelect', component: 'TreeSelect',
componentProps: { // 假设deptList是部门数据列表 componentProps: { // 假设deptList是部门数据列表
@ -93,6 +96,18 @@ export const EquipmentManufacturer = useCrudSchemas(reactive<CrudSchema[]>([
} }
} }
}, },
{
label: '是否启用',
field: 'available',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isTable: true,
isDetail: false,
isSearch: false,
isTableForm: false,
isForm: false,
},
{ {
label: '备注', label: '备注',
field: 'remark', field: 'remark',
@ -105,28 +120,7 @@ export const EquipmentManufacturer = useCrudSchemas(reactive<CrudSchema[]>([
} }
} }
}, },
{
label: '是否可用',
field: 'available',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isSearch: true,
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
search: {
component: 'Select',
},
table: {
width: 110
}
},
{ {
label: '操作', label: '操作',
field: 'action', field: 'action',

33
src/views/eam/equipmentManufacturer/index.vue

@ -33,7 +33,7 @@
</el-button> </el-button>
</template> </template>
<template #action="{ row }"> <template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" /> <ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template> </template>
</Table> </Table>
</ContentWrap> </ContentWrap>
@ -90,6 +90,15 @@ const updataTableColumns = (val) => {
tableColumns.value = val tableColumns.value = val
} }
const judgeStatus = (row) =>{
if(row.available === 'TRUE'){
return true
}else{
return false
}
}
const { tableObject, tableMethods } = useTable({ const { tableObject, tableMethods } = useTable({
getListApi: EquipmentManufacturerApi.getEquipmentManufacturerPage // getListApi: EquipmentManufacturerApi.getEquipmentManufacturerPage //
}) })
@ -132,10 +141,13 @@ const buttonBaseClick = (val, item) => {
} }
// - // -
const butttondata = [ const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi:'eam:equipment-manufacturer:update'}), // defaultButtons.mainListEditBtn({hasPermi:'eam:equipment-manufacturer:update'}), //
defaultButtons.mainListEnableBtn({hasPermi:'eam:inspection-item:enable',hide: judgeStatus(row)}), //
defaultButtons.mainListDisableBtn({hasPermi:'eam:inspection-item:disable',hide: !judgeStatus(row)}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'eam:equipment-manufacturer:delete'}), // // defaultButtons.mainListDeleteBtn({hasPermi:'eam:equipment-manufacturer:delete'}), //
] ]}
// - // -
const buttonTableClick = async (val, row) => { const buttonTableClick = async (val, row) => {
@ -143,6 +155,10 @@ const buttonTableClick = async (val, row) => {
openForm('update', row) openForm('update', row)
} else if (val == 'delete') { // } else if (val == 'delete') { //
handleDelete(row.id) handleDelete(row.id)
} else if (val == 'enable') { //
handleEnable(row,'TRUE')
}else if (val == 'disable') {//
handleEnable(row,'FALSE')
} }
} }
@ -235,6 +251,17 @@ const searchFormClick = (searchData) => {
getList() // getList() //
} }
const handleEnable = (row,enable) =>{
message.confirm(t('您确定'+(enable=='TRUE'?'启用':'禁用')+'该项吗, 是否继续?')).then(() => {
row.available = enable
EquipmentManufacturerApi.updateEquipmentManufacturer(row).then(res => {
message.success(t('common.updateSuccess'))
getList()
})
})
}
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
getList() getList()

40
src/views/eam/equipmentSupplier/equipmentSupplier.data.ts

@ -88,7 +88,10 @@ export const EquipmentSupplier = useCrudSchemas(reactive<CrudSchema[]>([
label: '部门', label: '部门',
field: 'departmentCode', field: 'departmentCode',
sort: 'custom', sort: 'custom',
isSearch: true, isTable: false,
isDetail: false,
isSearch: false,
isTableForm: false,
form: { form: {
component: 'TreeSelect', component: 'TreeSelect',
componentProps: { // 假设deptList是部门数据列表 componentProps: { // 假设deptList是部门数据列表
@ -99,6 +102,18 @@ export const EquipmentSupplier = useCrudSchemas(reactive<CrudSchema[]>([
} }
} }
}, },
{
label: '是否启用',
field: 'available',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isTable: true,
isDetail: false,
isSearch: false,
isTableForm: false,
isForm: false,
},
{ {
label: '备注', label: '备注',
field: 'remark', field: 'remark',
@ -111,28 +126,7 @@ export const EquipmentSupplier = useCrudSchemas(reactive<CrudSchema[]>([
} }
} }
}, },
{
label: '是否可用',
field: 'available',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isSearch: true,
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
search: {
component: 'Select',
},
table: {
width: 110
}
},
{ {
label: '操作', label: '操作',
field: 'action', field: 'action',

32
src/views/eam/equipmentSupplier/index.vue

@ -33,7 +33,7 @@
</el-button> </el-button>
</template> </template>
<template #action="{ row }"> <template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" /> <ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template> </template>
</Table> </Table>
</ContentWrap> </ContentWrap>
@ -90,6 +90,15 @@ const updataTableColumns = (val) => {
tableColumns.value = val tableColumns.value = val
} }
const judgeStatus = (row) =>{
if(row.available === 'TRUE'){
return true
}else{
return false
}
}
const { tableObject, tableMethods } = useTable({ const { tableObject, tableMethods } = useTable({
getListApi: EquipmentSupplierApi.getEquipmentSupplierPage // getListApi: EquipmentSupplierApi.getEquipmentSupplierPage //
}) })
@ -132,10 +141,13 @@ const buttonBaseClick = (val, item) => {
} }
// - // -
const butttondata = [ const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi:'eam:equipment-supplier:update'}), // defaultButtons.mainListEditBtn({hasPermi:'eam:equipment-supplier:update'}), //
defaultButtons.mainListEnableBtn({hasPermi:'eam:inspection-item:enable',hide: judgeStatus(row)}), //
defaultButtons.mainListDisableBtn({hasPermi:'eam:inspection-item:disable',hide: !judgeStatus(row)}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'eam:equipment-supplier:delete'}), // // defaultButtons.mainListDeleteBtn({hasPermi:'eam:equipment-supplier:delete'}), //
] ]}
// - // -
const buttonTableClick = async (val, row) => { const buttonTableClick = async (val, row) => {
@ -143,6 +155,10 @@ const buttonTableClick = async (val, row) => {
openForm('update', row) openForm('update', row)
} else if (val == 'delete') { // } else if (val == 'delete') { //
handleDelete(row.id) handleDelete(row.id)
} else if (val == 'enable') { //
handleEnable(row,'TRUE')
}else if (val == 'disable') {//
handleEnable(row,'FALSE')
} }
} }
@ -235,6 +251,16 @@ const searchFormClick = (searchData) => {
getList() // getList() //
} }
const handleEnable = (row,enable) =>{
message.confirm(t('您确定'+(enable=='TRUE'?'启用':'禁用')+'该项吗, 是否继续?')).then(() => {
row.available = enable
EquipmentSupplierApi.updateEquipmentSupplier(row).then(res => {
message.success(t('common.updateSuccess'))
getList()
})
})
}
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
getList() getList()

271
src/views/eam/inspectionItem/index.vue

@ -0,0 +1,271 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="InspectionItem.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InspectionItem.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:pagination="{
total: tableObject.total
}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="basicFormRef"
@success="formsSuccess"
:rules="InspectionItemRules"
:formAllSchemas="InspectionItem.allSchemas"
:apiUpdate="InspectionItemApi.updateInspectionItem"
:apiCreate="InspectionItemApi.createInspectionItem"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
<Detail ref="detailRef" :isBasic="true" :allSchemas="InspectionItem.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/eam/basic/inspection-item/import" :importTemplateData="importTemplateData" @success="importSuccess" />
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { InspectionItem,InspectionItemRules } from './inspectionItem.data'
import * as InspectionItemApi from '@/api/eam/inspectionItem'
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'
defineOptions({ name: 'InspectionItem' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(InspectionItem.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
//
const updataTableColumns = (val) => {
tableColumns.value = val
}
const judgeStatus = (row) =>{
if(row.available === 'TRUE'){
return true
}else{
return false
}
}
const { tableObject, tableMethods } = useTable({
getListApi: InspectionItemApi.getInspectionItemPage //
})
//
const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'eam:inspection-item:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'eam:inspection-item:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'eam:inspection-item:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
// {
// label: '',
// name: 'zdy',
// hide: false,
// type: 'primary',
// icon: 'Select',
// color: ''
// },
]
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
openForm('create')
} else if (val == 'import') { //
handleImport()
} else if (val == 'export') { //
handleExport()
} else if (val == 'refresh') { //
getList()
} else if (val == 'filtrate') { //
} else { //
console.log('其他按钮', item)
}
}
// -
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi:'eam:inspection-item:update'}), //
defaultButtons.mainListEnableBtn({hasPermi:'eam:inspection-item:enable',hide: judgeStatus(row)}), //
defaultButtons.mainListDisableBtn({hasPermi:'eam:inspection-item:disable',hide: !judgeStatus(row)}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'eam:inspection-item:delete'}), //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
} else if (val == 'enable') { //
handleEnable(row,'TRUE')
}else if (val == 'disable') {//
handleEnable(row,'FALSE')
}
}
/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
// form
const formsSuccess = async (formType,data) => {
var isHave =InspectionItem.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间')
return;
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await InspectionItemApi.createInspectionItem(data)
message.success(t('common.createSuccess'))
} else {
await InspectionItemApi.updateInspectionItem(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue, 'basicInspectionItem')
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await InspectionItemApi.deleteInspectionItem(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await InspectionItemApi.exportInspectionItem(tableObject.params)
download.excel(data, '巡检项.xlsx')
} catch {
} finally {
exportLoading.value = false
}
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: '巡检项导入模版.xlsx'
})
//
const importSuccess = () => {
getList()
}
//
const searchFormClick = (searchData) => {
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() //
}
const handleEnable = (row,enable) =>{
message.confirm(t('您确定'+(enable=='TRUE'?'启用':'禁用')+'该项吗, 是否继续?')).then(() => {
row.available = enable
InspectionItemApi.updateInspectionItem(row).then(res => {
message.success(t('common.updateSuccess'))
getList()
})
})
}
/** 初始化 **/
onMounted(async () => {
getList()
importTemplateData.templateUrl = await InspectionItemApi.importTemplate()
})
</script>

110
src/views/eam/inspectionItem/inspectionItem.data.ts

@ -0,0 +1,110 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
import { handleTreeToComponentOptions } from '@/utils/tree'
import * as DeptApi from '@/api/system/dept'
const deptList = ref<Tree[]>([]) // 树形结构
// 加载部门树(默认格式)
deptList.value = handleTreeToComponentOptions(await DeptApi.getSimpleDeptList())
// 表单校验
export const InspectionItemRules = reactive({
content: [required],
serialNumber: [required],
concurrencyStamp: [required],
type: [required],
})
export const InspectionItem = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '巡检内容',
field: 'content',
sort: 'custom',
isSearch: true,
form: {
component: 'Input',
componentProps: {
type: 'textarea'
}
}
},
{
label: '保养部位',
field: 'equipmentParts',
sort: 'custom',
isSearch: true
},
{
label: '类别',
field: 'category',
sort: 'custom',
isSearch: true
},
{
label: '序号',
field: 'serialNumber',
sort: 'custom',
isSearch: true,
fixed: 'left',
form: {
component:'InputNumber'
},
},
{
label: '来源于类型配置',
field: 'type',
sort: 'custom',
dictType: DICT_TYPE.DEVICE_TYPE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isSearch: true,
form: {
component: 'Select'
}
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
isTable: false,
isDetail: false,
isSearch: false,
isTableForm: false,
form: {
component: 'TreeSelect',
componentProps: { // 假设deptList是部门数据列表
data: deptList,
placeholder: "请选择部门",
filterable: true,
// multiple: true,
}
}
},
{
label: '是否启用',
field: 'available',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isTable: true,
isDetail: false,
isSearch: false,
isTableForm: false,
isForm: false,
},
{
label: '备注',
field: 'remark',
sort: 'custom',
isSearch: true
},
{
label: '操作',
field: 'action',
isForm: false,
table: {
width: 150,
fixed: 'right'
}
}
]))

270
src/views/eam/spotCheckItem/index.vue

@ -0,0 +1,270 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="SpotCheckItem.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SpotCheckItem.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:pagination="{
total: tableObject.total
}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="basicFormRef"
@success="formsSuccess"
:rules="SpotCheckItemRules"
:formAllSchemas="SpotCheckItem.allSchemas"
:apiUpdate="SpotCheckItemApi.updateSpotCheckItem"
:apiCreate="SpotCheckItemApi.createSpotCheckItem"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
<Detail ref="detailRef" :isBasic="true" :allSchemas="SpotCheckItem.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/eam/basic/spot-check-item/import" :importTemplateData="importTemplateData" @success="importSuccess" />
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { SpotCheckItem,SpotCheckItemRules } from './spotCheckItem.data'
import * as SpotCheckItemApi from '@/api/eam/spotCheckItem'
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'
defineOptions({ name: 'SpotCheckItem' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(SpotCheckItem.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
//
const updataTableColumns = (val) => {
tableColumns.value = val
}
const judgeStatus = (row) =>{
if(row.available === 'TRUE'){
return true
}else{
return false
}
}
const { tableObject, tableMethods } = useTable({
getListApi: SpotCheckItemApi.getSpotCheckItemPage //
})
//
const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'eam:spot-check-item:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'eam:spot-check-item:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'eam:spot-check-item:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
// {
// label: '',
// name: 'zdy',
// hide: false,
// type: 'primary',
// icon: 'Select',
// color: ''
// },
]
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
openForm('create')
} else if (val == 'import') { //
handleImport()
} else if (val == 'export') { //
handleExport()
} else if (val == 'refresh') { //
getList()
} else if (val == 'filtrate') { //
} else { //
console.log('其他按钮', item)
}
}
// -
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi:'eam:spot-check-item:update'}), //
defaultButtons.mainListEnableBtn({hasPermi:'eam:spot-check-item:enable',hide: judgeStatus(row)}), //
defaultButtons.mainListDisableBtn({hasPermi:'eam:spot-check-item:disable',hide: !judgeStatus(row)}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'eam:spot-check-item:delete'}), //
]}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
} else if (val == 'enable') { //
handleEnable(row,'TRUE')
}else if (val == 'disable') {//
handleEnable(row,'FALSE')
}
}
/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
// form
const formsSuccess = async (formType,data) => {
var isHave =SpotCheckItem.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间')
return;
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await SpotCheckItemApi.createSpotCheckItem(data)
message.success(t('common.createSuccess'))
} else {
await SpotCheckItemApi.updateSpotCheckItem(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue, 'basicSpotCheckItem')
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await SpotCheckItemApi.deleteSpotCheckItem(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await SpotCheckItemApi.exportSpotCheckItem(tableObject.params)
download.excel(data, '点检项.xlsx')
} catch {
} finally {
exportLoading.value = false
}
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: '点检项导入模版.xlsx'
})
//
const importSuccess = () => {
getList()
}
//
const searchFormClick = (searchData) => {
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() //
}
const handleEnable = (row,enable) =>{
message.confirm(t('您确定'+(enable=='TRUE'?'启用':'禁用')+'该项吗, 是否继续?')).then(() => {
row.available = enable
SpotCheckItemApi.updateSpotCheckItem(row).then(res => {
message.success(t('common.updateSuccess'))
getList()
})
})
}
/** 初始化 **/
onMounted(async () => {
getList()
importTemplateData.templateUrl = await SpotCheckItemApi.importTemplate()
})
</script>

104
src/views/eam/spotCheckItem/spotCheckItem.data.ts

@ -0,0 +1,104 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
import { handleTreeToComponentOptions } from '@/utils/tree'
import * as DeptApi from '@/api/system/dept'
const deptList = ref<Tree[]>([]) // 树形结构
// 加载部门树(默认格式)
deptList.value = handleTreeToComponentOptions(await DeptApi.getSimpleDeptList())
// 表单校验
export const SpotCheckItemRules = reactive({
content: [required],
serialNumber: [required],
concurrencyStamp: [required],
type: [required],
})
export const SpotCheckItem = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '点检内容',
field: 'content',
sort: 'custom',
isSearch: true,
form: {
component: 'Input',
componentProps: {
type: 'textarea'
}
}
},
{
label: '点检部位',
field: 'equipmentParts',
sort: 'custom',
isSearch: true
},
{
label: '序号',
field: 'serialNumber',
sort: 'custom',
isSearch: true,
fixed: 'left',
form: {
component:'InputNumber'
},
},
{
label: '来源于类型配置',
field: 'type',
sort: 'custom',
dictType: DICT_TYPE.DEVICE_TYPE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isSearch: true,
form: {
component: 'Select'
}
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
isTable: false,
isDetail: false,
isSearch: false,
isTableForm: false,
form: {
component: 'TreeSelect',
componentProps: { // 假设deptList是部门数据列表
data: deptList,
placeholder: "请选择部门",
filterable: true,
// multiple: true,
}
}
},
{
label: '是否启用',
field: 'available',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isTable: true,
isDetail: false,
isSearch: false,
isTableForm: false,
isForm: false,
},
{
label: '备注',
field: 'remark',
sort: 'custom',
isSearch: true
},
{
label: '操作',
field: 'action',
isForm: false,
table: {
width: 150,
fixed: 'right'
}
}
]))

3
src/views/home/components/supplierIndex.vue

@ -231,7 +231,8 @@
import { set } from 'lodash-es' import { set } from 'lodash-es'
import { EChartsOption } from 'echarts' import { EChartsOption } from 'echarts'
import { lineOptions, pieOptions } from '../echarts-data' import { lineOptions, pieOptions } from '../echarts-data'
import { formatDate } from '@/utils/formatTime' import { formatDate,dateFormatter } from '@/utils/formatTime'
import * as NotifyMessageApi from '@/api/system/notify/message' import * as NotifyMessageApi from '@/api/system/notify/message'
import * as IndexApi from '@/api/home' import * as IndexApi from '@/api/home'
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'

33
src/views/mes/orderDay/components/schedule.vue

@ -201,7 +201,7 @@
</el-dialog> </el-dialog>
</ContentWrap> </ContentWrap>
<template #footer> <template #footer>
<el-button @click="handleClose" >关闭</el-button> <el-button @click="handleClose('dddddd')" >关闭</el-button>
<el-button type="primary" @click="publishPlan" >发布计划</el-button> <el-button type="primary" @click="publishPlan" >发布计划</el-button>
</template> </template>
<SearchTable ref="searchTableRef" @search-table-success="searchTableSuccess" /> <SearchTable ref="searchTableRef" @search-table-success="searchTableSuccess" />
@ -471,18 +471,21 @@ const opensearchTable = (
) )
} }
const handleClose=()=>{ const handleClose=(val)=>{
dialogVisible.value = false, dialogVisible.value = false
emit('close') emit('close',val)
} }
const publishPlan=()=>{ const publishPlan=()=>{
message.confirm("确认发布当前计划?","question").then(async () => { message.confirm("确认发布当前计划?","提示").then( () => {
//isPublish.value=true //isPublish.value=true
//loading.value = true, //loading.value = true,
try{formLoading.value=true try{
doPublishPlan() }finally{ formLoading.value=true
let promise = doPublishPlan();
handleClose(promise)
}finally{
formLoading.value=false; formLoading.value=false;
handleClose()
} }
}).catch(() => { }).catch(() => {
@ -517,12 +520,14 @@ const doPublishPlan= ()=>{
let res = OrderDayApi.publishPlan(data) let res = OrderDayApi.publishPlan(data)
res.then(()=>{ return res
message.success("计划发布成功")
}).catch(()=>{ // res.then(()=>{
//console.log("---doPublishPlan-- 458--",res.msg) // message.success("")
message.error("计划发布失败!") // }).catch(()=>{
}) // //console.log("---doPublishPlan-- 458--",res.msg)
// message.error("")
// })
} }

36
src/views/mes/orderDay/index.vue

@ -199,9 +199,11 @@ const buttonBaseClick = (val, item) => {
console.log('其他按钮', item) console.log('其他按钮', item)
} }
} }
const publishClosed=()=>{ const publishClosed=(val)=>{
//console.log('orderday-publishClosed-200') console.log('orderday-publishClosed-200',val)
nextTick?.(()=>{
getList() getList()
})
} }
// //
@ -270,23 +272,22 @@ const openForm = (type: string, row?: any) => {
const formsSuccess = async (formType,data) => { const formsSuccess = async (formType,data) => {
if (formType === 'create') { if (formType === 'create') {
let ret= OrderDayApi.createOrderDay(data) await OrderDayApi.createOrderDay(data)
if(ret===undefined || ret===null){ // if(ret===undefined || ret===null){
message.error(t('common.networkError')) // message.error(t('common.networkError'))
}else{ // }else{
message.success(t('common.createSuccess')) // message.success(t('common.createSuccess'))
} // }
} else { } else {
let ret= OrderDayApi.updateOrderDay(data) await OrderDayApi.updateOrderDay(data)
if(ret.code==0){ // if(ret.code==0){
message.success(t('common.updateSuccess')) // message.success(t('common.updateSuccess'))
}else{ // }else{
message.error(t('common.networkError')) // message.error(t('common.networkError'))
} // }
} }
basicFormRef.value.dialogVisible = false basicFormRef.value.dialogVisible = false
await getList() await getList()
} }
@ -336,8 +337,9 @@ const handleExport = async () => {
exportLoading.value = false exportLoading.value = false
} }
} }
const stopPlan = (id) => { const stopPlan = async (id) => {
OrderDayApi.stopPlan(id) await OrderDayApi.stopPlan(id)
getList()
} }
/** 导入 */ /** 导入 */

3
src/views/mes/orderDay/orderDay.data.ts

@ -49,6 +49,7 @@ export const OrderDay = useCrudSchemas(reactive<CrudSchema[]>([
field: 'id', field: 'id',
sort: 'custom', sort: 'custom',
isForm: false, isForm: false,
isTable: false,
width: '60px', width: '60px',
}, },
{ {
@ -365,7 +366,7 @@ export const OrderDay = useCrudSchemas(reactive<CrudSchema[]>([
field: 'remark', field: 'remark',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isTable:false, // isTable:false,
}, },
{ {
label: '操作', label: '操作',

5
src/views/mes/workScheduling/components/qualifiedCheck.vue

@ -32,13 +32,10 @@
<el-input v-model="baseform.remark"></el-input> <el-input v-model="baseform.remark"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<el-button @click="dialogVisible = false">关闭</el-button> <el-button @click="dialogVisible = false">关闭</el-button>
<el-button type="primary" :disabled="saveFlag" @click="saveReport">保存</el-button> <el-button type="primary" :disabled="saveFlag" @click="saveReport">保存</el-button>
</template> </Dialog </template> </Dialog>
>
</template>
<script lang="ts" setup> <script lang="ts" setup>
import { Dialog } from '@/components/Dialog' import { Dialog } from '@/components/Dialog'
import * as workschedulingApi from '@/api/mes/workScheduling' import * as workschedulingApi from '@/api/mes/workScheduling'

28
src/views/qms/inspectionJob/addForm.vue

@ -357,7 +357,6 @@
allSamplePieceSize.value = 0//0 allSamplePieceSize.value = 0//0
if (row) { if (row) {
data.value = JSON.parse(JSON.stringify(row)) data.value = JSON.parse(JSON.stringify(row))
// console.log(data.value)//
// await InspectionJobMainApi.acceptInspectionJobMain(row.id) // await InspectionJobMainApi.acceptInspectionJobMain(row.id)
let list = [] let list = []
list = await InspectionJobDetailPageApi.getInspectionJobDetailList(row.id) list = await InspectionJobDetailPageApi.getInspectionJobDetailList(row.id)
@ -370,7 +369,7 @@
// //
allSamplePieceSize.value += parseFloat((parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.sampleQty) * parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.samplePieceSize)).toFixed(2)) allSamplePieceSize.value += parseFloat((parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.sampleQty) * parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.samplePieceSize)).toFixed(2))
// rules.value['inspectionJobCharacteristicsUpdateReqVO.quantifyCapping'][0].required = true // rules.value['inspectionJobCharacteristicsUpdateReqVO.quantifyCapping'][0].required = true
if(!item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList){ if (!item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList) {
// //
if (item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 0) { if (item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 0) {
// rules.value['inspectionJobCharacteristicsUpdateReqVO.quantifyCapping'][0].required = true // rules.value['inspectionJobCharacteristicsUpdateReqVO.quantifyCapping'][0].required = true
@ -421,7 +420,6 @@
rules.value['inspectionJobCharacteristicsUpdateReqVO.estimateCode'][0].required = false rules.value['inspectionJobCharacteristicsUpdateReqVO.estimateCode'][0].required = false
} }
}) })
console.log(22, allSamplePieceSize.value)
data.value.subList = list data.value.subList = list
/** /**
设置采样数量默认第一个包装采样数量<总数量显示数量字段第二个包装和剩下的总数量对比以此类推 设置采样数量默认第一个包装采样数量<总数量显示数量字段第二个包装和剩下的总数量对比以此类推
@ -429,7 +427,7 @@
*/ */
for (let i = 0; i < data.value.packageList.length; i++) { for (let i = 0; i < data.value.packageList.length; i++) {
if(data.value.packageList[i].sampleAmount==null){ if (data.value.packageList[i].sampleAmount == null) {
if (allSamplePieceSize.value > data.value.packageList[i].amount) { if (allSamplePieceSize.value > data.value.packageList[i].amount) {
data.value.packageList[i].sampleAmount = data.value.packageList[i].amount data.value.packageList[i].sampleAmount = data.value.packageList[i].amount
allSamplePieceSize.value = parseFloat((allSamplePieceSize.value - data.value.packageList[i].amount).toFixed(2)) allSamplePieceSize.value = parseFloat((allSamplePieceSize.value - data.value.packageList[i].amount).toFixed(2))
@ -526,12 +524,10 @@
quantifyQuantifyCode: '' quantifyQuantifyCode: ''
} }
}) })
console.log(data.value.subList)
editableTabsValue.value = newTabName editableTabsValue.value = newTabName
dialogVisibleName.value = false dialogVisibleName.value = false
} else { } else {
console.log('error submit!')
return false return false
} }
}) })
@ -559,7 +555,6 @@
// //
const emit = defineEmits(['submitForm', 'searchTableSuccess']) const emit = defineEmits(['submitForm', 'searchTableSuccess'])
const validateForm = (formRef) => { const validateForm = (formRef) => {
// console.log(TableBaseForm_Ref.value)
let _lists = formRef?.map((v) => v.validate()) let _lists = formRef?.map((v) => v.validate())
return Promise.all(_lists) return Promise.all(_lists)
.then(() => { .then(() => {
@ -572,7 +567,6 @@
const tableFormRef = ref() const tableFormRef = ref()
const submitForm = async () => { const submitForm = async () => {
try { try {
console.log(data.value.subList)
const elForm = unref(formMainRef)?.getElFormRef() const elForm = unref(formMainRef)?.getElFormRef()
// //
if (!elForm) return if (!elForm) return
@ -580,7 +574,6 @@
if (!valid) return if (!valid) return
// //
console.log(11, data.value.packageList)
if (data.value.packageList?.length > 0) { if (data.value.packageList?.length > 0) {
const validateForm1 = await tableFormRef.value.validateForm() const validateForm1 = await tableFormRef.value.validateForm()
if (!validateForm1) return if (!validateForm1) return
@ -615,7 +608,7 @@
arrBol.push( arrBol.push(
item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some( item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some(
(cur, key) => { (cur, key) => {
return !cur.qualifiedQuantity || !cur.unqualifiedQuantity return cur.qualifiedQuantity === '' || cur.unqualifiedQuantity === ''
} }
) )
) )
@ -655,9 +648,6 @@
numberList.push( numberList.push(
item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some( item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some(
(cur, key) => { (cur, key) => {
console.log(12, cur.qualifiedQuantity)
console.log(13, cur.unqualifiedQuantity)
console.log(14, item.inspectionJobCharacteristicsUpdateReqVO.sampleQty)
return parseFloat(cur.qualifiedQuantity) + parseFloat(cur.unqualifiedQuantity) != parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.sampleQty) return parseFloat(cur.qualifiedQuantity) + parseFloat(cur.unqualifiedQuantity) != parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.sampleQty)
} }
) )
@ -691,13 +681,11 @@
emit('submitForm', formType.value, data.value) emit('submitForm', formType.value, data.value)
} }
} catch { } catch {
console.log(111)
} }
} }
const staging = async () => { const staging = async () => {
try { try {
console.log(data.value.subList)
const elForm = unref(formMainRef)?.getElFormRef() const elForm = unref(formMainRef)?.getElFormRef()
// //
if (!elForm) return if (!elForm) return
@ -705,7 +693,6 @@
if (!valid) return if (!valid) return
// //
console.log(11, data.value.packageList)
if (data.value.packageList?.length > 0) { if (data.value.packageList?.length > 0) {
const validateForm1 = await tableFormRef.value.validateForm() const validateForm1 = await tableFormRef.value.validateForm()
if (!validateForm1) return if (!validateForm1) return
@ -740,7 +727,7 @@
arrBol.push( arrBol.push(
item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some( item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some(
(cur, key) => { (cur, key) => {
return !cur.qualifiedQuantity || !cur.unqualifiedQuantity return cur.qualifiedQuantity === '' || cur.unqualifiedQuantity === ''
} }
) )
) )
@ -780,9 +767,6 @@
numberList.push( numberList.push(
item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some( item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some(
(cur, key) => { (cur, key) => {
console.log(12, cur.qualifiedQuantity)
console.log(13, cur.unqualifiedQuantity)
console.log(14, item.inspectionJobCharacteristicsUpdateReqVO.sampleQty)
return parseFloat(cur.qualifiedQuantity) + parseFloat(cur.unqualifiedQuantity) != parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.sampleQty) return parseFloat(cur.qualifiedQuantity) + parseFloat(cur.unqualifiedQuantity) != parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.sampleQty)
} }
) )
@ -811,7 +795,6 @@
await InspectionJobMainApi.stagingInspectionJobMain(data.value); await InspectionJobMainApi.stagingInspectionJobMain(data.value);
message.success("暂存成功") message.success("暂存成功")
} catch { } catch {
console.log(111)
} }
} }
@ -828,7 +811,6 @@
} }
// //
const changeFeatureType = (e) => { const changeFeatureType = (e) => {
console.log(e)
// if (e) { // if (e) {
// rules.value['inspectionJobCharacteristicsUpdateReqVO.quantifyQuantifyCode'][0].required = true // rules.value['inspectionJobCharacteristicsUpdateReqVO.quantifyQuantifyCode'][0].required = true
// } else { // } else {
@ -986,12 +968,10 @@
} }
] ]
} }
console.log(222, item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList)
} }
// //
const changeQualitativeCode = (e, item, cur) => { const changeQualitativeCode = (e, item, cur) => {
let obj = item.selectedProjectRespVOList.find((cur) => cur.dictionaryValue == e) let obj = item.selectedProjectRespVOList.find((cur) => cur.dictionaryValue == e)
console.log(obj)
cur.defectLevel = obj.defectLevel cur.defectLevel = obj.defectLevel
cur.estimateCode = obj.estimateCode cur.estimateCode = obj.estimateCode
} }

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

@ -160,6 +160,15 @@
} }
} }
//
const isShowMainButton2 = (row, val) => {
if (val.indexOf(row.isStaging) > -1) {
return false
} else {
return true
}
}
// - // -
const butttondata = (row) => { const butttondata = (row) => {
return [ return [
@ -167,6 +176,7 @@
defaultButtons.mainListJobCloBtn({hide:isShowMainButton(row,['1']),hasPermi:'qms:inspection-job-main:close'}), // defaultButtons.mainListJobCloBtn({hide:isShowMainButton(row,['1']),hasPermi:'qms:inspection-job-main:close'}), //
defaultButtons.mainListJobAbaBtn({hide:isShowMainButton(row,['2']),hasPermi:'qms:inspection-job-main:abandon'}), // defaultButtons.mainListJobAbaBtn({hide:isShowMainButton(row,['2']),hasPermi:'qms:inspection-job-main:abandon'}), //
defaultButtons.mainListJobExeBtn({hide:isShowMainButton(row,['2']),hasPermi:'qms:inspection-job-main:execute'}), // defaultButtons.mainListJobExeBtn({hide:isShowMainButton(row,['2']),hasPermi:'qms:inspection-job-main:execute'}), //
defaultButtons.mainListOrderPubBtn({hide:isShowMainButton2(row,['TRUE']),hasPermi:'qms:inspection-job-main:execute'}), //
defaultButtons.mainListPackageBtn(null), // defaultButtons.mainListPackageBtn(null), //
] ]
} }
@ -185,6 +195,8 @@ const list = ref([])
handleAbandon(row.id) handleAbandon(row.id)
} else if (val == 'mainJobClo') { // } else if (val == 'mainJobClo') { //
handleClose(row.id) handleClose(row.id)
} else if (val == 'mainOrderPub') { //
handleRelease(row.id)
} else if (val == 'mainJobAcc') { // } else if (val == 'mainJobAcc') { //
handleAccept(row.id) handleAccept(row.id)
} }
@ -220,6 +232,18 @@ const list = ref([])
await getList() await getList()
} catch { } } catch { }
} }
/** 发布按钮操作 */
const handleRelease = async (id : number) => {
try {
//
await message.confirm('确认发布吗?')
//
await InspectionJobMainApi.releaseInspectionJobMain(id)
message.success('发布成功!')
//
await getList()
} catch { }
}
// //
const handleAccept = async (id : number) => { const handleAccept = async (id : number) => {
try { try {

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

@ -786,7 +786,6 @@ export const DeliverRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
field: 'uom', field: 'uom',
dictType: DICT_TYPE.UOM, dictType: DICT_TYPE.UOM,
dictClass: 'string', dictClass: 'string',
isTable: true,
sort: 'custom', sort: 'custom',
table: { table: {
width: 150 width: 150

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

@ -567,9 +567,6 @@ const resetShow = async () => {
item.tableForm.isInpuFocusShow = true item.tableForm.isInpuFocusShow = true
item.tableForm.disabled = false item.tableForm.disabled = false
} }
if(item.field == 'uom') {
item.tableForm.disabled = false
}
if(item.field == 'available') { if(item.field == 'available') {
item.tableForm.disabled = false item.tableForm.disabled = false
} }

17
src/views/wms/deliversettlementManage/saleShipmentMainRecord/index.vue

@ -27,9 +27,9 @@
v-model:currentPage="tableObject.currentPage" v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort" v-model:sort="tableObject.sort"
> >
<template #code="{row}"> <template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)"> <el-button type="primary" link @click="openDetail(row, '单据号', row.number)">
<span>{{ row.code }}</span> <span>{{ row.number }}</span>
</el-button> </el-button>
</template> </template>
<template #action="{ row }"> <template #action="{ row }">
@ -62,7 +62,6 @@ import { SaleShipmentMainRecord,SaleShipmentMainRecordRules } from './saleShipme
import * as SaleShipmentMainRecordApi from '@/api/wms/saleShipmentMainRecord' import * as SaleShipmentMainRecordApi from '@/api/wms/saleShipmentMainRecord'
import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue' import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue' import Detail from '@/components/Detail/src/Detail.vue'
defineOptions({ name: 'SaleShipmentMainRecord' }) defineOptions({ name: 'SaleShipmentMainRecord' })
@ -98,8 +97,8 @@ const { getList, setSearchParams } = tableMethods
// //
const HeadButttondata = [ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:saleShipmentMainRecord:create'}), // // defaultButtons.defaultAddBtn({hasPermi:'wms:sale-shipment-main-record:create'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:saleShipmentMainRecord:export'}), // defaultButtons.defaultExportBtn({hasPermi:'wms:sale-shipment-main-record:export'}), //
defaultButtons.defaultFreshBtn(null), // defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), // defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), // defaultButtons.defaultSetBtn(null), //
@ -129,8 +128,8 @@ const buttonBaseClick = (val, item) => {
// - // -
const butttondata = [ const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'wms:saleShipmentMainRecord:update'}), // // defaultButtons.mainListEditBtn({hasPermi:'wms:sale-shipment-main-record:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'wms:saleShipmentMainRecord:delete'}), // // defaultButtons.mainListDeleteBtn({hasPermi:'wms:sale-shipment-main-record:delete'}), //
] ]
// - // -
@ -189,7 +188,7 @@ const handleExport = async () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await SaleShipmentMainRecordApi.exportSaleShipmentMainRecord(tableObject.params) const data = await SaleShipmentMainRecordApi.exportSaleShipmentMainRecord(tableObject.params)
download.excel(data, '销售发运记录.xlsx') download.excel(data, '销售发运记录.xlsx')
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false

3
src/views/wms/deliversettlementManage/saleShipmentMainRecord/saleShipmentMainRecord.data.ts

@ -73,6 +73,7 @@ export const SaleShipmentMainRecord = useCrudSchemas(reactive<CrudSchema[]>([
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
isTable:false
}, },
{ {
label: '部门', label: '部门',
@ -102,12 +103,14 @@ export const SaleShipmentMainRecord = useCrudSchemas(reactive<CrudSchema[]>([
} }
}, },
isForm: false, isForm: false,
isTable:false
}, },
{ {
label: '地点ID', label: '地点ID',
field: 'siteId', field: 'siteId',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
isTable:false
}, },
{ {
label: '操作', label: '操作',

2
src/views/wms/deliversettlementManage/saleShipmentMainRequest/index.vue

@ -214,7 +214,7 @@ const butttondata = (row,$index) => {
} }
return [ return [
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:sale-shipment-main-request:update'}), // defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:sale-shipment-main-request:update'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4']),hasPermi:'wms:sale-shipment-main-request:close'}), // defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4']),hasPermi:'wms:sale-shipment-main-request:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:sale-shipment-main-request:reAdd'}), // defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:sale-shipment-main-request:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:sale-shipment-main-request:submit'}), // defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:sale-shipment-main-request:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:sale-shipment-main-request:refused'}), // defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:sale-shipment-main-request:refused'}), //

6
src/views/wms/deliversettlementManage/saleShipmentMainRequest/saleShipmentMain.data.ts

@ -499,9 +499,7 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
field: 'action', field: 'action',
isDetail: false, isDetail: false,
isForm: false, isForm: false,
table: { hiddenInMain:true,
width: 150, isTableForm:false,
fixed: 'right'
}
} }
])) ]))

5
src/views/wms/inventoryjobManage/containermanage/containerMainRequest/containerMainRequest.data.ts

@ -493,10 +493,7 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
isForm: false, isForm: false,
hiddenInMain:true, hiddenInMain:true,
isTableForm: false, isTableForm: false,
table: { isTable: false
width: 150,
fixed: 'right'
}
} }
])) ]))

3
src/views/wms/productionManage/productscrap/productscrapRecordMain/index.vue

@ -135,6 +135,7 @@ const buttonOperationClick = async (row, label, index)=> {
return return
} }
detatableDataBom.params.itemCode = row.itemCode detatableDataBom.params.itemCode = row.itemCode
detatableDataBom.params.masterId = row.id
DialogTitle.value = '物料代码:【' + row.itemCode + '】 Bom 信息' DialogTitle.value = '物料代码:【' + row.itemCode + '】 Bom 信息'
bomModelVisible.value = true bomModelVisible.value = true
await getDetailListBom() await getDetailListBom()
@ -181,7 +182,7 @@ const tableFormButton = async (val , row) => {
bomModelVisible.value = true bomModelVisible.value = true
DialogTitle.value = '物料代码【' + row.itemCode + '】——Bom信息' DialogTitle.value = '物料代码【' + row.itemCode + '】——Bom信息'
detatableDataBom.params = { detatableDataBom.params = {
masterId: row.masterId masterId: row.id
} }
await getDetailListBom() await getDetailListBom()
} }

2
src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue

@ -420,7 +420,7 @@ const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAcces
const searchTableRef = ref() const searchTableRef = ref()
const labelPrint = async (row) => { const labelPrint = async (row) => {
tableObject.loading = true tableObject.loading = true
const defaultParams = {'moduleName':'supplier','recordNumber':row.number} const defaultParams = {'moduleName':'purchasereceipt_request','recordNumber':row.asnNumber}
const {tableObject:tableObjectPrint ,tableMethods} = useTable({ const {tableObject:tableObjectPrint ,tableMethods} = useTable({
defaultParams, defaultParams,
getListApi: PackageApi.getLabelDetailPage // getListApi: PackageApi.getLabelDetailPage //

Loading…
Cancel
Save