| | |
| | | # @version: |
| | | # @Date: 2024-06-17 14:51:25 |
| | | # @LastEditors: Ben Lin |
| | | # @LastEditTime: 2024-07-25 10:33:15 |
| | | # @LastEditTime: 2024-10-24 14:46:06 |
| | | ### |
| | | # Whether to open mock |
| | | VITE_USE_MOCK = false |
| | |
| | | # File upload addressï¼ optional |
| | | # ç´æ¥IISæè
è°è¯ç¨ |
| | | VITE_GLOB_UPLOAD_URL=http://localhost:9528/api/Base/Upload |
| | | VITE_GLOB_DOWNLOAD_URL=http://47.115.28.255:8800/files |
| | | VITE_GLOB_DOWNLOAD_URL=http://localhost:8800/files |
| | | |
| | | # Interface prefix |
| | | VITE_GLOB_API_URL_PREFIX = |
| | |
| | | DeleteLabelTemplate = '/MES/DeleteLabelTemplate', |
| | | AddOrEditLabelVarByWorkOrder = '/MES/AddOrEditLabelVarByWorkOrder', |
| | | GetLabelVarByWorkOrder = '/MES/GetLabelVarByWorkOrder', |
| | | GetWoPickList = '/MES/GetWoPickList', |
| | | } |
| | |
| | | import { defHttp } from '/@/utils/http/axios'; |
| | | import { useUserStore } from '../../../store/modules/user'; |
| | | |
| | | const userId = useUserStore().getUserInfo.userId.toString(); |
| | | /* |
| | | * è·åå·¥åºå页å表 |
| | | */ |
| | |
| | | FACTORY: '鸿é¹WMS', |
| | | IS_FPY: 'N', |
| | | IS_REFLOW: 'N', |
| | | CREATE_USER: useUserStore().getUserInfo.userId, |
| | | UPDATE_USER: useUserStore().getUserInfo.userId, |
| | | CREATE_USER: userId, |
| | | UPDATE_USER: userId, |
| | | UPDATE_TIME: '2023-02-06', |
| | | CREATE_TIME: '2023-02-06', |
| | | OPER_ACTION: '1', |
| | |
| | | FACTORY: '鸿é¹WMS', |
| | | IS_FPY: 'Y', |
| | | IS_REFLOW: 'Y', |
| | | CREATE_USER: useUserStore().getUserInfo.userId, |
| | | UPDATE_USER: useUserStore().getUserInfo.userId, |
| | | CREATE_USER: userId, |
| | | UPDATE_USER: userId, |
| | | UPDATE_TIME: '2023-02-06', |
| | | CREATE_TIME: '2023-02-06', |
| | | OPER_ACTION: '2', |
| | |
| | | FACTORY: '鸿é¹WMS', |
| | | IS_FPY: 'Y', |
| | | IS_REFLOW: 'Y', |
| | | CREATE_USER: useUserStore().getUserInfo.userId, |
| | | UPDATE_USER: useUserStore().getUserInfo.userId, |
| | | CREATE_USER: userId, |
| | | UPDATE_USER: userId, |
| | | UPDATE_TIME: '2023-02-06', |
| | | CREATE_TIME: '2023-02-06', |
| | | OPER_ACTION: '4', |
| | |
| | | FACTORY: '鸿é¹WMS', |
| | | IS_FPY: 'Y', |
| | | IS_REFLOW: 'Y', |
| | | CREATE_USER: useUserStore().getUserInfo.userId, |
| | | UPDATE_USER: useUserStore().getUserInfo.userId, |
| | | CREATE_USER: userId, |
| | | UPDATE_USER: userId, |
| | | UPDATE_TIME: '2023-02-06', |
| | | CREATE_TIME: '2023-02-06', |
| | | OPER_ACTION: '4', |
| | |
| | | FACTORY: '鸿é¹WMS', |
| | | IS_FPY: 'N', |
| | | IS_REFLOW: 'N', |
| | | CREATE_USER: useUserStore().getUserInfo.userId, |
| | | UPDATE_USER: useUserStore().getUserInfo.userId, |
| | | CREATE_USER: userId, |
| | | UPDATE_USER: userId, |
| | | UPDATE_TIME: '2023-02-06', |
| | | CREATE_TIME: '2023-02-06', |
| | | OPER_ACTION: '4', |
| | |
| | | FACTORY: '鸿é¹WMS', |
| | | IS_FPY: 'N', |
| | | IS_REFLOW: 'N', |
| | | CREATE_USER: useUserStore().getUserInfo.userId, |
| | | UPDATE_USER: useUserStore().getUserInfo.userId, |
| | | CREATE_USER: userId, |
| | | UPDATE_USER: userId, |
| | | UPDATE_TIME: '2023-02-06', |
| | | CREATE_TIME: '2023-02-06', |
| | | OPER_ACTION: '1', |
| | |
| | | FACTORY: '鸿é¹WMS', |
| | | IS_FPY: 'Y', |
| | | IS_REFLOW: 'Y', |
| | | CREATE_USER: useUserStore().getUserInfo.userId, |
| | | UPDATE_USER: useUserStore().getUserInfo.userId, |
| | | CREATE_USER: userId, |
| | | UPDATE_USER: userId, |
| | | UPDATE_TIME: '2023-02-06', |
| | | CREATE_TIME: '2023-02-06', |
| | | OPER_ACTION: '2', |
| | |
| | | FACTORY: '鸿é¹WMS', |
| | | IS_FPY: 'Y', |
| | | IS_REFLOW: 'Y', |
| | | CREATE_USER: useUserStore().getUserInfo.userId, |
| | | UPDATE_USER: useUserStore().getUserInfo.userId, |
| | | CREATE_USER: userId, |
| | | UPDATE_USER: userId, |
| | | UPDATE_TIME: '2023-02-06', |
| | | CREATE_TIME: '2023-02-06', |
| | | OPER_ACTION: '4', |
| | |
| | | FACTORY: '鸿é¹WMS', |
| | | IS_FPY: 'Y', |
| | | IS_REFLOW: 'Y', |
| | | CREATE_USER: useUserStore().getUserInfo.userId, |
| | | UPDATE_USER: useUserStore().getUserInfo.userId, |
| | | CREATE_USER: userId, |
| | | UPDATE_USER: userId, |
| | | UPDATE_TIME: '2023-02-06', |
| | | CREATE_TIME: '2023-02-06', |
| | | OPER_ACTION: '4', |
| | |
| | | FACTORY: '鸿é¹WMS', |
| | | IS_FPY: 'N', |
| | | IS_REFLOW: 'N', |
| | | CREATE_USER: useUserStore().getUserInfo.userId, |
| | | UPDATE_USER: useUserStore().getUserInfo.userId, |
| | | CREATE_USER: userId, |
| | | UPDATE_USER: userId, |
| | | UPDATE_TIME: '2023-02-06', |
| | | CREATE_TIME: '2023-02-06', |
| | | OPER_ACTION: '4', |
| | |
| | | ); |
| | | } else { |
| | | params.ID = buildUUID(); //çæGUID |
| | | params.CREATE_USER = useUserStore().getUserInfo.userId; |
| | | params.CREATE_USER = userId; |
| | | data = await defHttp.post( |
| | | { url: Api.AddEntity, params: genAction('MES_OPERATION', params) }, |
| | | { |
| | |
| | | SaveWoBatchInput, |
| | | BizMesWoInput, |
| | | BAS_LABEL_VAR_WO, |
| | | WoFlowCardPrintJson, |
| | | } from '../model/mesModel'; |
| | | import { genAction, Api, genActionPage } from '../system'; |
| | | import { defHttp } from '/@/utils/http/axios'; |
| | |
| | | ); |
| | | return data; |
| | | }; |
| | | |
| | | /** |
| | | * @desc è·åå·¥åå¤æä¿¡æ¯ |
| | | */ |
| | | export function GetWoPickList(code: string) { |
| | | const params = genAction('', code); |
| | | return getPickListApi(params); |
| | | } |
| | | async function getPickListApi(params: ApiAction<string>) { |
| | | const data = await defHttp.post<ApiAction<WoFlowCardPrintJson[]>>( |
| | | { |
| | | url: mesApi.GetWoPickList, |
| | | params, |
| | | }, |
| | | { |
| | | errorMessageMode: 'modal', |
| | | isTransformResponse: false, |
| | | }, |
| | | ); |
| | | return data; |
| | | } |
| | |
| | | seq: string; |
| | | isDefault: boolean; |
| | | level: number; |
| | | cust:string; |
| | | children: MesRotTree[] |
| | | cust: string; |
| | | children: MesRotTree[]; |
| | | } |
| | | |
| | | export interface PageRotTree { |
| | | name: string; |
| | | treeInfo: MesRotTree[]; |
| | | } |
| | | |
| | | export interface WoFlowCardPrintJson { |
| | | ID: string; |
| | | OrderNo: string; |
| | | ItemCode: string; |
| | | ItemDesc: string; |
| | | SapCode: string; |
| | | Model: string; |
| | | Qty: number; |
| | | Remark: string; |
| | | RouteStr: string; |
| | | Items: PrintWoPickList[] |
| | | } |
| | | |
| | | export interface PrintWoPickList { |
| | | LineNo: number; |
| | | SapCode: string; |
| | | ItemCode: string; |
| | | ItemDesc: string; |
| | | PickQty: string; |
| | | LineRemark: string; |
| | | WhCode: string; |
| | | WhCode07: string; |
| | | Method: string; |
| | | } |
| | |
| | | EntityJson: string; |
| | | CheckJson: string; |
| | | where: string; |
| | | typeFullName: string; |
| | | } |
| | | |
| | | export interface ImportInput extends BaseImportInput{ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * @Description: 工念ç¨å¡Store |
| | | * @Author: Ben Lin |
| | | * @version: |
| | | * @Date: 2024-06-18 15:09:47 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-10-23 22:52:45 |
| | | */ |
| | | import { defineStore } from 'pinia'; |
| | | import { store } from '@/store'; |
| | | import { GetWoPickList } from '/@/api/tigerapi/mes/wo'; |
| | | import { ActionToJson } from '/@/utils/is'; |
| | | import { WoFlowCardPrintJson } from '/@/api/tigerapi/model/mesModel'; |
| | | |
| | | interface WoFlowcardState { |
| | | curPrintInfo: WoFlowCardPrintJson[]; |
| | | curOrderNo: string; |
| | | curCPInfo: any[]; |
| | | } |
| | | |
| | | export const useWoFlowcardStore = defineStore({ |
| | | id: 'app-WoFlowcard', |
| | | state: (): WoFlowcardState => ({ |
| | | curPrintInfo: [], |
| | | curOrderNo: '', |
| | | curCPInfo: [], |
| | | }), |
| | | getters: { |
| | | getCurPrintInfo(state): any[] { |
| | | return state.curPrintInfo; |
| | | }, |
| | | getCurOrderNo(state): string { |
| | | return state.curOrderNo; |
| | | }, |
| | | getCurCPInfo(state): any[] { |
| | | return state.curCPInfo; |
| | | }, |
| | | }, |
| | | actions: { |
| | | setCurPrintInfo(val: any[]) { |
| | | this.curPrintInfo = val; |
| | | }, |
| | | setCurOrderNo(val: string) { |
| | | this.curOrderNo = val; |
| | | }, |
| | | resetState() { |
| | | this.curPrintInfo = []; |
| | | this.curOrderNo = ''; |
| | | this.curCPInfo = []; |
| | | }, |
| | | /** |
| | | * @description: è·åå·¥åå¤æä¿¡æ¯ |
| | | * @param {string} tid |
| | | * @return {*} |
| | | */ |
| | | async getWoPickList(code: string) { |
| | | this.setCurOrderNo(code); |
| | | const d = ActionToJson(await GetWoPickList(code)); |
| | | this.setCurPrintInfo(d.Data); |
| | | }, |
| | | async resetFunc(name, f, ByOrg: boolean) { |
| | | |
| | | }, |
| | | }, |
| | | }); |
| | | |
| | | // Need to be used outside the setup |
| | | export function useQueryWithOut() { |
| | | return useWoFlowcardStore(store); |
| | | } |
| | |
| | | return false; |
| | | } |
| | | |
| | | export function ActionToJson(action: any): any { |
| | | return JSON.parse(JSON.stringify(action)) |
| | | } |
| | | |
| | | |
| | |
| | | // import { useLocale } from '/@/locales/useLocale'; |
| | | import { BasicTable } from '/@/components/Table'; |
| | | import { ImportExcel, ValidateTableImport } from '/@/api/tigerapi/system'; |
| | | import { useUserStore } from '/@/store/modules/user'; |
| | | |
| | | const emit = defineEmits(['success', 'register', 'toExcel']); |
| | | const props = defineProps({ |
| | |
| | | }); |
| | | // const { getLocale } = useLocale(); |
| | | const { t } = useI18n(''); |
| | | const { createMessage, createConfirm } = useMessage(); |
| | | const { createMessage, createConfirm, createErrorModal } = useMessage(); |
| | | const tmpHeader = ref([]); |
| | | const filename = ref(''); |
| | | const entityName = ref(''); |
| | |
| | | |
| | | let dataSource = [] as any[]; |
| | | results.map((item) => { |
| | | let entity = {} as any; |
| | | let entity = { AUTH_ORG: useUserStore().userInfo?.orgCode.toString() } as any; |
| | | baseColumns.value.map((c) => { |
| | | entity[c['dataIndex']] = item[c['title']]; //c['dataIndex']=='BATCH_NO'?`${item[c['ORDER_NO']]}-01`: item[c['title']]; |
| | | }); |
| | |
| | | title: () => h('span', t('导å
¥ä¿¡æ¯')), |
| | | content: () => h('span', t('确认æä¿®æ¹çæ°æ®æ¯å¦æ£ç¡®ï¼æå¼å¸¸çæ°æ®æ æ³å¯¼å
¥')), |
| | | onOk: async () => { |
| | | const apiAction = await ImportExcel( |
| | | entityName.value, |
| | | tableListRef.value[0]['dataSource'] as any[], |
| | | ); |
| | | const apiAction = await ImportExcel(entityName.value, { |
| | | EntityJson: JSON.stringify(tableListRef.value[0].dataSource), |
| | | typeFullName: typeFullName.value, |
| | | }); |
| | | if (apiAction.IsSuccessed) { |
| | | closeModal(); |
| | | createMessage.success(t('导å
¥æå')); |
| | |
| | | isUpdate: unref(false), |
| | | values: { ...values, id: 0 }, |
| | | }); |
| | | } else { |
| | | createErrorModal({ |
| | | title: t('sys.api.errorTip'), |
| | | content: apiAction.Message, |
| | | }); |
| | | } |
| | | }, |
| | | }); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div id="print-area"> |
| | | <div class="item" v-for="(items, index) in tableData" :key="items.id"> |
| | | <div v-if="index == 0"> |
| | | <div class="flex relative"> |
| | | <div class="head">æåå
¥åºå </div> |
| | | <div class="absolute right-12 m-4 z-2"> |
| | | <!-- <QrCode |
| | | :value="qrInstoreOrder" |
| | | :width="64" |
| | | :height="64" |
| | | :options="{ margin: 5 }" |
| | | ref="qrDiyRef" |
| | | /> --> |
| | | </div> |
| | | </div> |
| | | <div style="display: flex; flex-direction: row; height: 30px; margin: 2px"> |
| | | <div style="width: 40%"></div> |
| | | <div style="width: 17%"></div> |
| | | <div style="width: 18%"></div> |
| | | <div style="width: 25%">å
¥åºæ¥æï¼{{ formatToDate(new Date()) }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="main"> |
| | | <table class=" "> |
| | | <tr> |
| | | <!-- <th class="material_table_td w-1/14">åºå·</th> --> |
| | | <th class="material_table_td" style="width: 14%">å
¥åºåå·</th> |
| | | <th class="material_table_td" style="width: 14%">éå®è®¢åå·</th> |
| | | <th class="material_table_td" style="width: 16%">å
è£
å·¥åå·</th> |
| | | <th class="material_table_td" style="width: 16%">æå·</th> |
| | | <th class="material_table_td" style="width: 24%">æè¿°</th> |
| | | <th class="material_table_td" style="width: 8%">è®¡åæ°é</th> |
| | | <th class="material_table_td" style="width: 8%">å
¥åºæ°é</th> |
| | | </tr> |
| | | <tr v-for="(item, indexs) in items.Items.filter((q) => q.STATUS == 'Y')" :key="indexs"> |
| | | <!-- <td class="material_table_td"> |
| | | {{ Number(indexs) + 1 }} |
| | | </td> --> |
| | | <td class="instore_td"> |
| | | <QrCode |
| | | :value="item.ORDER_NO" |
| | | :width="70" |
| | | :height="70" |
| | | :options="{ margin: 1 }" |
| | | ref="qrDiyRef" |
| | | /> |
| | | </td> |
| | | <td class="instore_td"> |
| | | {{ item.SALES_ORDER }} |
| | | </td> |
| | | <td class="instore_td"> |
| | | {{ item.WORK_ORDER }} |
| | | </td> |
| | | <td class="instore_td"> |
| | | {{ item.ITEM_CODE }} |
| | | </td> |
| | | <td class="instore_td"> |
| | | {{ item.ITEM_NAME }} |
| | | </td> |
| | | <td class="instore_td"> |
| | | {{ item.PLAN_QTY }} |
| | | </td> |
| | | <td class="instore_td"> |
| | | {{ item.SCAN_QTY }} |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | <div style="display: flex; flex-direction: row; height: 30px; margin-bottom: 15px; " v-if="index == Number(tableData?.length) - 1"> |
| | | <div style="width: 20%; margin-left: 15px;">å
¥åºäººåï¼{{}}</div> |
| | | <div style="width: 20%">ç产主管ï¼{{}}</div> |
| | | <div style="width: 20%">å管确认ï¼{{}}</div> |
| | | <div style="width: 20%">PMCå®¡æ ¸ï¼{{}}</div> |
| | | <div style="width: 20%">ä»åºç¾æ¶ï¼{{}}</div> |
| | | </div> |
| | | <div class="footer flex"> |
| | | <div style="width: 40%"></div> |
| | | <div style="width: 10%">第{{ index + 1 }}页</div> |
| | | <div style="width: 10%">å
±{{ tableData?.length }}页</div> |
| | | <div style="width: 40%"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { ref, toRefs } from 'vue'; |
| | | import { QrCode } from '/@/components/Qrcode/index'; |
| | | import { formatToDate } from '/@/utils/dateUtil'; |
| | | |
| | | const props = defineProps({ |
| | | tableData: { type: Object as PropType<any[]> }, |
| | | qrInstoreOrder: { type: String }, |
| | | }); |
| | | const { tableData, qrInstoreOrder } = toRefs(props); |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | #print-area { |
| | | position: absolute; |
| | | inset: 0; |
| | | background-color: #fff; |
| | | |
| | | .item { |
| | | display: flex; |
| | | flex-direction: column; |
| | | // background-color: bisque; |
| | | page-break-after: always; |
| | | height: 100%; |
| | | |
| | | .head { |
| | | z-index: 1; |
| | | width: 100%; |
| | | background-color: azure; |
| | | font-size: 36px; |
| | | font-weight: bold; |
| | | line-height: 100px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .main { |
| | | display: flex; |
| | | flex: 1; |
| | | // align-items: center; |
| | | justify-content: center; |
| | | padding: 15px; |
| | | |
| | | table { |
| | | border-collapse: collapse; |
| | | } |
| | | |
| | | table, |
| | | th, |
| | | td { |
| | | border: solid 1px black; |
| | | } |
| | | |
| | | tr > th { |
| | | height: 60px; |
| | | } |
| | | |
| | | /* 设置æ é¢å段åä½å¤§å° */ |
| | | // :deep() { |
| | | // .ant-table-tbody > tr > td { |
| | | // font-size: 3px; /* ä¿®æ¹ä¸ºä½ æ³è¦çåä½å¤§å° */ |
| | | // line-height: 18px; |
| | | // } |
| | | |
| | | // .ant-table-thead > tr > th { |
| | | // line-height: 21px; |
| | | // } |
| | | |
| | | // .ant-table-title { |
| | | // font-size: 4px; /* è®¾ç½®ä½ æ³è¦çåä½å¤§å° */ |
| | | // } |
| | | // } |
| | | |
| | | .instore_td { |
| | | border: 1px solid #000; |
| | | font-size: 6px; /* ä¿®æ¹ä¸ºä½ æ³è¦çåä½å¤§å° */ |
| | | line-height: 20px; |
| | | text-align: center; |
| | | word-break: break-all; |
| | | } |
| | | |
| | | .material_table_td { |
| | | border: 1px solid #000; |
| | | font-size: 6px; /* ä¿®æ¹ä¸ºä½ æ³è¦çåä½å¤§å° */ |
| | | line-height: 20px; |
| | | text-align: center; |
| | | word-break: break-all; |
| | | } |
| | | } |
| | | |
| | | .footer { |
| | | display: flex; |
| | | margin-bottom: 15px; |
| | | background-color: #eee; |
| | | font-size: 14px; |
| | | // font-weight: bold; |
| | | line-height: 100px; |
| | | text-align: center; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | if (unref(lf).getNodeIncomingNode(n.id).length == 0) { |
| | | node.IS_FIRST_NODE = 'Y'; |
| | | nd.IS_FIRST_NODE = 'Y'; |
| | | node.IS_INPUT = 'Y'; |
| | | nd.IS_INPUT = 'Y'; |
| | | node.IS_INPUT = 'Y'; |
| | | nd.IS_INPUT = 'Y'; |
| | | } |
| | | currRotData.nodes.push(node); |
| | | } |
| | |
| | | }); |
| | | } else { |
| | | var hasError = false; |
| | | let msg = ''; |
| | | unref(lf) |
| | | .getGraphData() |
| | | .nodes.forEach((n) => { |
| | | /* 夿æ¯å¦æNodeæªè¿æ¥ */ |
| | | if ( |
| | | unref(lf).getNodeIncomingEdge(n.id).length == 0 && |
| | | unref(lf).getNodeOutgoingEdge(n.id).length == 0 |
| | | ) { |
| | | hasError = true; |
| | | msg = 'æèç¹æªè¿çº¿ï¼è¯·éæ°è®¾è®¡å·¥èºè·¯çº¿åä¿åæ°æ®ï¼'; |
| | | } |
| | | if ( |
| | | unref(lf) |
| | | .getNodeOutgoingNode(n.id) |
| | | .some((q) => q.properties.operType == 'End') && |
| | | unref(lf) |
| | | .getNodeOutgoingNode(n.id) |
| | | .some((q) => q.properties.operType != 'End' && q.properties.operType != 'Action') |
| | | ) { |
| | | hasError = true; |
| | | msg = 'å®å·¥èç¹ä¸æ¯å¯ä¸çæåèç¹ï¼è¯·éæ°è®¾è®¡å·¥èºè·¯çº¿åä¿åæ°æ®ï¼'; |
| | | } |
| | | }); |
| | | if (hasError) { |
| | | createErrorModal({ |
| | | title: t('è¦å'), |
| | | content: t('æèç¹æªè¿çº¿ï¼è¯·éæ°è®¾è®¡å·¥èºè·¯çº¿åä¿åæ°æ®ï¼'), |
| | | content: t(msg), |
| | | getContainer: () => document.body, |
| | | }); |
| | | } else { |
| | |
| | | getContainer: () => document.body, |
| | | }); |
| | | } else { |
| | | if (unref(lf).getNodeIncomingNode(data.nodeModel.id).length == 0) { |
| | | if ( |
| | | unref(lf).getNodeIncomingNode(data.nodeModel.id).length == 0 && |
| | | unref(lf) |
| | | .getNodeOutgoingNode(data.nodeModel.id) |
| | | .some((q) => q.properties.operType == 'Node') |
| | | ) { |
| | | lf.graphModel.deleteEdgeById(data.edgeModel.id); |
| | | createErrorModal({ |
| | | title: t('è¦å'), |
| | |
| | | import GeneralModal from '/@/views/components/GeneralModal.vue'; |
| | | import CarGridNav from './CarGridNav.vue'; |
| | | import Config from './Config.vue'; |
| | | import LeftTree from './LeftTree.vue'; |
| | | import CustModal from '/@/views/components/CustModal.vue'; |
| | | import { OpenCustModal, initRoute } from '../data'; |
| | | import { Ref, VNode, onMounted, provide, ref, unref } from 'vue'; |
| | | import { Ref, VNode, defineAsyncComponent, onMounted, provide, ref, unref } from 'vue'; |
| | | import { FlowChartView } from '/@/components/FlowChart'; |
| | | import { useRoute } from 'vue-router'; |
| | | import { BasicForm, useForm } from '/@/components/Form/index'; |
| | |
| | | |
| | | defineOptions({ name: 'å·¥åå·¥èºç»å®' }); |
| | | |
| | | const LeftTree = defineAsyncComponent(() => import('./LeftTree.vue')); |
| | | const { notification, createErrorModal } = useMessage(); |
| | | const go = useGo(); |
| | | const route = useRoute(); |
| | |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { Ref, inject, nextTick, onMounted, ref, unref, watch } from 'vue'; |
| | | import { BasicTable, useTable, TableAction, BasicColumn, FormSchema } from '/@/components/Table'; |
| | | import { BasicTable, useTable, TableAction, BasicColumn, FormSchema, ActionItem } from '/@/components/Table'; |
| | | import { BasicForm, useForm } from '/@/components/Form/index'; |
| | | import { useDrawer } from '/@/components/Drawer'; |
| | | import GeneralModal from '/@/views/components/GeneralModal.vue'; |
| | |
| | | }; |
| | | |
| | | /* æ ¹æ®èå设置çæé®èªå¨çææä½åä¸çæé® */ |
| | | const actionItem = GenerateActionButton(params, buttons, openDrawer, reload); |
| | | const _actionItem: ActionItem[] = []; |
| | | const actionItem = GenerateActionButton(params, buttons, openDrawer, reload, _actionItem); |
| | | if (isNullOrUnDef(custImport.value['default'])) { |
| | | return actionItem; |
| | | } |
| | |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | export function GenerateActionButton(params: any, buttons: Ref<[]>, openDrawer: Fn, reload: Fn) { |
| | | const actionItem = [] as ActionItem[]; |
| | | export function GenerateActionButton( |
| | | params: any, |
| | | buttons: Ref<[]>, |
| | | openDrawer: Fn, |
| | | reload: Fn, |
| | | actionItem: ActionItem[], |
| | | ) { |
| | | buttons.value.map((x) => { |
| | | if (x['BUTTON_TYPE'] == 1) { |
| | | let url = ''; |
| | |
| | | }; |
| | | } |
| | | } |
| | | actionItem.push({ |
| | | icon: isNullOrEmpty(x['ICON_URL']) ? url : x['ICON_URL'], |
| | | tooltip: _tooltip, |
| | | onClick: _click, |
| | | color: color, |
| | | popConfirm: _popConfirm, |
| | | name: x['DO_METHOD'], |
| | | }); |
| | | if (x['DO_METHOD'] != 'ToPrint') { |
| | | actionItem.push({ |
| | | icon: isNullOrEmpty(x['ICON_URL']) ? url : x['ICON_URL'], |
| | | tooltip: _tooltip, |
| | | onClick: _click, |
| | | color: color, |
| | | popConfirm: _popConfirm, |
| | | name: x['DO_METHOD'], |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | return actionItem; |
| | |
| | | for (const k in Keys) { |
| | | if (!isNullOrEmpty(params[Keys[k]]?.length) && isArray(params[Keys[k]])) { |
| | | if (isTimeViaRegExp8601(params[Keys[k]][0])) { |
| | | params[Keys[k]][0] = dateUtil(params[Keys[k]][0]) |
| | | params[Keys[k]][1] = dateUtil(params[Keys[k]][1]) |
| | | params[Keys[k]][0] = dateUtil(params[Keys[k]][0]); |
| | | params[Keys[k]][1] = dateUtil(params[Keys[k]][1]); |
| | | } |
| | | } |
| | | if (isTimeViaRegExp8601(params[Keys[k]])) { |
| | | params[Keys[k]] = dateUtil(params[Keys[k]]); |
| | | } |
| | | } |
| | | f.setFieldsValue(params); |
| | | } |
| | |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { Ref, inject, onMounted, ref } from 'vue'; |
| | | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
| | | import { BasicTable, useTable, TableAction, ActionItem } from '/@/components/Table'; |
| | | import { BasicForm, useForm } from '/@/components/Form/index'; |
| | | import { useDrawer } from '/@/components/Drawer'; |
| | | import GeneralModal from '/@/views/components/GeneralModal.vue'; |
| | |
| | | selectVals, |
| | | colSlots, |
| | | }; |
| | | const actionItem = GenerateActionButton(params, buttons, openDrawer, reload); |
| | | const _actionItem: ActionItem[] = []; |
| | | const actionItem = GenerateActionButton(params, buttons, openDrawer, reload,_actionItem); |
| | | if (isNullOrUnDef(custImport.value['default'])) { |
| | | return actionItem; |
| | | } |
| | |
| | | <detail :entityName="entityName" /> |
| | | </Suspense> |
| | | </div> |
| | | <div v-if="currentKey == 'detailsecond'"> |
| | | <Suspense></Suspense> |
| | | </div> |
| | | </div> |
| | | </PageWrapper> |
| | | </template> |
| | | |
| | | <script lang="ts" setup> |
| | | import { ref, provide, Ref } from 'vue'; |
| | | import { ref, provide, Ref, defineAsyncComponent } from 'vue'; |
| | | import { useRoute } from 'vue-router'; |
| | | import { PageWrapper } from '/@/components/Page'; |
| | | import { useTabs } from '/@/hooks/web/useTabs'; |
| | | import { Tabs } from 'ant-design-vue'; |
| | | import { useGo } from '/@/hooks/web/usePage'; |
| | | import { OpenCustModal, custOnChange } from '../data'; |
| | | import detail from './detail.vue'; |
| | | import { useI18n } from '/@/hooks/web/useI18n'; |
| | | import { useMessage } from '/@/hooks/web/useMessage'; |
| | | import { useGlobSetting } from '/@/hooks/setting'; |
| | | |
| | | const { t } = useI18n(); |
| | | |
| | | const detail = defineAsyncComponent(() => import('./detail.vue')); |
| | | const { createMessage } = useMessage(); |
| | | const route = useRoute(); |
| | | // const objParams = ref(JSON.parse(decodeURI(route.params?.id as string))); |
| | |
| | | .then((m) => { |
| | | const [{ GetHomeUrl }] = m.default(); |
| | | // æ¬ä¾çæææ¶ç¹å»è¿åå§ç»è·³è½¬å°è´¦å·å表页ï¼å®é
åºç¨æ¶å¯è¿åä¸ä¸é¡µ |
| | | go(GetHomeUrl({colSlots:crudColSlots.value})); |
| | | go(GetHomeUrl({ colSlots: crudColSlots.value })); |
| | | }) |
| | | .catch(() => {}); |
| | | } catch (e) {} |
| | |
| | | switch (fnName) { |
| | | case 'ImportExcel': |
| | | action = { |
| | | action: 'importModal', //drawer(æå¼å·¦ä¾§æ½å±æ¡) | go(è·³è½¬å°æ°ç页é¢) | modal(æå¼æ¨¡æçªå£) | importModal(æå¼å¯¼å
¥æ¨¡æçªå£) |
| | | action: 'importModal', //drawer(æå¼å·¦ä¾§æ½å±æ¡) | go(è·³è½¬å°æ°ç页é¢) | modal(æå¼æ¨¡æçªå£) | importModal(æå¼å¯¼å
¥æ¨¡æçªå£) | ToPrint(æå°åè½) |
| | | params: { |
| | | tmpHeader: ['å·¥åå·', 'è®¡åæ¥æ', 'è®¡åæ°é'] /* ä¸è½½æ¨¡æ¿çæ é¢å段 */, |
| | | filename: 'å·¥åè®¡åæ¨¡æ¿.xlsx' /* ä¸è½½æ¨¡æ¿çæä»¶å */, |
| | |
| | | }, |
| | | }; |
| | | break; |
| | | case 'ToPrint': |
| | | action = { |
| | | action: 'ToPrint', //drawer(æå¼å·¦ä¾§æ½å±æ¡) | go(è·³è½¬å°æ°ç页é¢) | modal(æå¼æ¨¡æçªå£) | importModal(æå¼å¯¼å
¥æ¨¡æçªå£) | ToPrint(æå°åè½) |
| | | }; |
| | | break; |
| | | default: |
| | | action = { |
| | | action: 'drawer', //drawer(æå¼å·¦ä¾§æ½å±æ¡) | go(è·³è½¬å°æ°ç页é¢) | modal(æå¼æ¨¡æçªå£) |
| | | action: 'drawer', //drawer(æå¼å·¦ä¾§æ½å±æ¡) | go(è·³è½¬å°æ°ç页é¢) | modal(æå¼æ¨¡æçªå£) | importModal(æå¼å¯¼å
¥æ¨¡æçªå£) | ToPrint(æå°åè½) |
| | | }; |
| | | break; |
| | | } |
| | |
| | | x.onClick = handleRelease.bind(null, args, params); |
| | | x.tooltip = 'ä¸å'; |
| | | } |
| | | // if (x.name == 'handleTemplate') { |
| | | // x.onClick = handleTemplate.bind(null, args, params); |
| | | // x.tooltip = '模æ¿ç»´æ¤'; |
| | | // } |
| | | if (x.name == 'ToPrint') { |
| | | x.tooltip = 'æå°æµç¨å¡'; |
| | | } |
| | | }); |
| | | return data; |
| | | }, |
| | |
| | | Name: 'WoRouteBinding', |
| | | CODE: params['record'].ORDER_NO, |
| | | Title: `å·¥å[${params['record'].ORDER_NO}]å·¥èºç»å®`, |
| | | colSlots: params['colSlots'].value /* è¡¨æ ¼å
çæ¥è¯¢è¡¨ååæ®µçææ§½å表ï¼ä¸è¬ç¨äºå¼¹åºéæ©æ¡æé® */, |
| | | colSlots: |
| | | params['colSlots'].value /* è¡¨æ ¼å
çæ¥è¯¢è¡¨ååæ®µçææ§½å表ï¼ä¸è¬ç¨äºå¼¹åºéæ©æ¡æé® */, |
| | | crudColSlots: { |
| | | BAS_PKG_DTL: ['BAS_LABEL_TEMP1add'], |
| | | ItemCode: ['BAS_CODE_RULE1add'], |
| | |
| | | resizable: true, |
| | | }, |
| | | { |
| | | dataIndex: 'PLAN_DATE', |
| | | title: 'è®¡åæ¥æ', |
| | | ifShow: true, |
| | | sorter: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | dataIndex: 'ACT_START_TIME', |
| | | title: 'å®é
å¼å§æ¶é´', |
| | | ifShow: true, |
| | |
| | | alertConfig: { |
| | | showAlert: false, |
| | | message: 'éå®è®¢å夿³¨', |
| | | description: WoRecord.SALES_REMARK, |
| | | description: '', |
| | | }, |
| | | searchInfo: { |
| | | TABLE_NAME: 'BAS_LABEL_VAR_WO', //å®ä½åç§° |
| | |
| | | <template> |
| | | <div> |
| | | <Loading |
| | | :loading="compState.loading" |
| | | :absolute="compState.absolute" |
| | | :theme="compState.theme" |
| | | :background="compState.background" |
| | | :tip="compState.tip" |
| | | /> |
| | | <div v-show="false"> |
| | | <printTemplate /> |
| | | </div> |
| | | <BasicTable @register="registerTable"> |
| | | <template #toolbar> |
| | | <!-- æ ¹æ®èå设置çæé®ï¼èªå¨çæ --> |
| | |
| | | </div> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { Ref, inject, nextTick, onMounted, ref, unref, watch } from 'vue'; |
| | | import { BasicTable, useTable, TableAction, BasicColumn, FormSchema } from '/@/components/Table'; |
| | | import { Ref, inject, nextTick, onMounted, reactive, ref, unref, watch } from 'vue'; |
| | | import { |
| | | BasicTable, |
| | | useTable, |
| | | TableAction, |
| | | BasicColumn, |
| | | FormSchema, |
| | | ActionItem, |
| | | } from '/@/components/Table'; |
| | | import { BasicForm, useForm } from '/@/components/Form/index'; |
| | | import { useDrawer } from '/@/components/Drawer'; |
| | | import GeneralModal from '/@/views/components/GeneralModal.vue'; |
| | |
| | | import { isFunction } from 'xe-utils'; |
| | | import { CustModalParams } from '/@/api/tigerapi/model/systemModel'; |
| | | import { useQueryStore } from '/@/store/modules/queryInpage'; |
| | | import printJS, { Configuration } from 'print-js'; |
| | | import printTemplate from '/@/views/components/printTemplate.vue'; |
| | | import { Loading, useLoading } from '@/components/Loading'; |
| | | import { useWoFlowcardStore } from '/@/store/modules/woflowcardprint'; |
| | | import { storeToRefs } from 'pinia'; |
| | | |
| | | const { t } = useI18n(); |
| | | const { currentRoute } = useRouter(); |
| | |
| | | const [registerCust, { openModal: openCustModal }] = useModal(); |
| | | const [registerCrud, { openModal: openCrudModal }] = useModal(); |
| | | const [registerImport, { openModal: openImportModal }] = useModal(); |
| | | const useWoFlowCard = useWoFlowcardStore(); |
| | | const { curPrintInfo } = storeToRefs(useWoFlowCard); |
| | | const cType = ref(''); |
| | | const formSchemas = ref({}); //å¼¹åºæ¡å¤è¡¨åç»æ |
| | | const routeData = ref({ |
| | |
| | | edges: [], |
| | | }); |
| | | const selectVals = ref({}); |
| | | const printData = ref<any[]>([]); |
| | | const wokerorder = ref(''); |
| | | const compState = reactive<{ |
| | | absolute?: boolean; |
| | | loading?: boolean; |
| | | theme?: 'dark' | 'light'; |
| | | background?: string; |
| | | tip?: string; |
| | | }>({ |
| | | absolute: false, |
| | | loading: false, |
| | | theme: 'dark', |
| | | background: 'rgba(111,111,111,.7)', |
| | | tip: 'å è½½ä¸...', |
| | | }); |
| | | const [openFullLoading, closeFullLoading] = useLoading({ |
| | | tip: 'æ£å¨å è½½æå°æ°æ®...', |
| | | }); |
| | | |
| | | printData.value = [ |
| | | { |
| | | id: '111', |
| | | Items: [ |
| | | { |
| | | ID: 111, |
| | | SALES_ORDER: 'YDSO240400482', |
| | | ORDER_NO: 'YDRKD241000012', |
| | | WORK_ORDER: 'YDMOB241104737', |
| | | ITEM_CODE: '20100705.0102.00', |
| | | ITEM_NAME: 'YM-DEMS-BD11Q48 AC0-300V AC20mA çµè½1级 ', |
| | | PLAN_QTY: 100, |
| | | SCAN_QTY: 50, |
| | | STATUS: 'Y', |
| | | }, |
| | | { |
| | | ID: 112, |
| | | SALES_ORDER: 'YDSO240400483', |
| | | ORDER_NO: 'YDRKD241000013', |
| | | WORK_ORDER: 'YDMOB241104737', |
| | | ITEM_CODE: '20100705.0102.00', |
| | | ITEM_NAME: 'YM-DEMS-BD11Q48 AC0-300V AC20mA çµè½1级 ', |
| | | PLAN_QTY: 100, |
| | | SCAN_QTY: 50, |
| | | STATUS: 'Y', |
| | | }, |
| | | { |
| | | ID: 113, |
| | | SALES_ORDER: 'YDSO240400484', |
| | | ORDER_NO: 'YDRKD241000014', |
| | | WORK_ORDER: 'YDMOB241104737', |
| | | ITEM_CODE: '20100705.0102.00', |
| | | ITEM_NAME: 'YM-DEMS-BD11Q48 AC0-300V AC20mA çµè½1级 ', |
| | | PLAN_QTY: 100, |
| | | SCAN_QTY: 50, |
| | | STATUS: 'Y', |
| | | }, |
| | | { |
| | | ID: 114, |
| | | ORDER_NO: 'YDRKD241000015', |
| | | SALES_ORDER: 'YDSO240400485', |
| | | WORK_ORDER: 'YDMOB241104737', |
| | | ITEM_CODE: '20100705.0102.00', |
| | | ITEM_NAME: 'YM-DEMS-BD11Q48 AC0-300V AC20mA çµè½1级 ', |
| | | PLAN_QTY: 100, |
| | | SCAN_QTY: 50, |
| | | STATUS: 'Y', |
| | | }, |
| | | { |
| | | ID: 115, |
| | | ORDER_NO: 'YDRKD241000016', |
| | | SALES_ORDER: 'YDSO240400486', |
| | | WORK_ORDER: 'YDMOB241104737', |
| | | ITEM_CODE: '20100705.0102.00', |
| | | ITEM_NAME: 'YM-DEMS-BD11Q48 AC0-300V AC20mA çµè½1级 ', |
| | | PLAN_QTY: 100, |
| | | SCAN_QTY: 50, |
| | | STATUS: 'Y', |
| | | }, |
| | | { |
| | | ID: 116, |
| | | ORDER_NO: 'YDRKD241000017', |
| | | SALES_ORDER: 'YDSO240400487', |
| | | WORK_ORDER: 'YDMOB241104737', |
| | | ITEM_CODE: '20100705.0102.00', |
| | | ITEM_NAME: 'YM-DEMS-BD11Q48 AC0-300V AC20mA çµè½1级 ', |
| | | PLAN_QTY: 100, |
| | | SCAN_QTY: 50, |
| | | STATUS: 'Y', |
| | | }, |
| | | // { |
| | | // ID: 116, |
| | | // ORDER_NO: 'YDRKD241000018', |
| | | // SALES_ORDER: 'YDSO240400488', |
| | | // WORK_ORDER: 'YDMOB241104737', |
| | | // ITEM_CODE: '20100705.0102.00', |
| | | // ITEM_NAME: 'YM-DEMS-BD11Q48 AC0-300V AC20mA çµè½1级 ', |
| | | // PLAN_QTY: 100, |
| | | // SCAN_QTY: 50, |
| | | // STATUS: 'Y', |
| | | // }, |
| | | // { |
| | | // ID: 116, |
| | | // ORDER_NO: 'YDRKD241000019', |
| | | // SALES_ORDER: 'YDSO240400489', |
| | | // WORK_ORDER: 'YDMOB241104737', |
| | | // ITEM_CODE: '20100705.0102.00', |
| | | // ITEM_NAME: 'YM-DEMS-BD11Q48 AC0-300V AC20mA çµè½1级 ', |
| | | // PLAN_QTY: 100, |
| | | // SCAN_QTY: 50, |
| | | // STATUS: 'Y', |
| | | // }, |
| | | // { |
| | | // ID: 116, |
| | | // ORDER_NO: 'YDRKD241000020', |
| | | // SALES_ORDER: 'YDSO240400490', |
| | | // WORK_ORDER: 'YDMOB241104737', |
| | | // ITEM_CODE: '20100705.0102.00', |
| | | // ITEM_NAME: 'YM-DEMS-BD11Q48 AC0-300V AC20mA çµè½1级 ', |
| | | // PLAN_QTY: 100, |
| | | // SCAN_QTY: 50, |
| | | // STATUS: 'Y', |
| | | // }, |
| | | // { |
| | | // ID: 116, |
| | | // ORDER_NO: 'YDRKD241000021', |
| | | // SALES_ORDER: 'YDSO240400491', |
| | | // WORK_ORDER: 'YDMOB241104737', |
| | | // ITEM_CODE: '20100705.0102.00', |
| | | // ITEM_NAME: 'YM-DEMS-BD11Q48 AC0-300V AC20mA çµè½1级 ', |
| | | // PLAN_QTY: 100, |
| | | // SCAN_QTY: 50, |
| | | // STATUS: 'Y', |
| | | // }, |
| | | ], |
| | | }, |
| | | ]; |
| | | const custImport = ref<any[]>([]); |
| | | const EntityCustFunction = ref([ |
| | | { |
| | |
| | | ? {} |
| | | : KeyFieldValues(objParams.value['CODE'], objParams.value['ID']); |
| | | const dtlSlots = ref<any[]>([]); |
| | | const ImportTitle = GetTitle && isFunction(GetTitle)? ref(GetTitle().importTitle): ref(''); |
| | | const ImportTitle = GetTitle && isFunction(GetTitle) ? ref(GetTitle().importTitle) : ref(''); |
| | | const useformdata = GetUseForm && isFunction(GetUseForm) ? GetUseForm() : {}; |
| | | const useFormData = ref<any>(useformdata); |
| | | /* èªå®ä¹æ¨¡æçªå£ä¸è¡¨åä¸ææ§½æ¸²ææé®æå¼æ¨¡ææ¡useModalæ¹æ³ */ |
| | |
| | | }; |
| | | |
| | | /* æ ¹æ®èå设置çæé®èªå¨çææä½åä¸çæé® */ |
| | | const actionItem = GenerateActionButton(params, buttons, openDrawer, reload); |
| | | const _actionItem: ActionItem[] = []; |
| | | const actionItem = GenerateActionButton(params, buttons, openDrawer, reload, _actionItem); |
| | | let _btn = buttons.value.filter((q) => q['BUTTON_TYPE'] == 1 && q['DO_METHOD'] == 'ToPrint'); |
| | | if (_btn.length > 0) { |
| | | _actionItem.push({ |
| | | icon: isNullOrEmpty(_btn[0]['ICON_URL']) ? '' : _btn[0]['ICON_URL'], |
| | | tooltip: 'æå°', |
| | | onClick: ToPrint.bind(null, params), |
| | | name: _btn[0]['DO_METHOD'], |
| | | }); |
| | | } |
| | | if (isNullOrUnDef(custImport.value['default'])) { |
| | | return actionItem; |
| | | } |
| | |
| | | break; |
| | | case 'importModal' /* æå¼å¯¼å
¥Excel模æçªå£ */: |
| | | openImportModal(true, result.params); |
| | | break; |
| | | case 'ToPrint': |
| | | ToPrint({}); |
| | | break; |
| | | } |
| | | } |
| | |
| | | function RvItemSuccess(d, u) { |
| | | RvcloseModal(); |
| | | } |
| | | |
| | | function ToPrint(params: {}) { |
| | | openFullLoading(); |
| | | useWoFlowCard.getWoPickList(params['record']['ORDER_NO']).then((res) => { |
| | | const _style = ` |
| | | #print-area { |
| | | position: absolute; |
| | | inset: 0; |
| | | background-color: #fff; |
| | | |
| | | .item { |
| | | display: flex; |
| | | flex-direction: column; |
| | | page-break-after: always; |
| | | height: 100%; |
| | | |
| | | |
| | | .head { |
| | | z-index: 1; |
| | | width: 100%; |
| | | background-color: azure; |
| | | font-size: 22px; |
| | | font-weight: bold; |
| | | line-height: 100px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .main { |
| | | display: flex; |
| | | flex: 1; |
| | | justify-content: center; |
| | | padding: 15px; |
| | | |
| | | table { |
| | | border-collapse: collapse; |
| | | width: 100%; |
| | | } |
| | | |
| | | table, |
| | | th, |
| | | td { |
| | | border: solid 1px black; |
| | | } |
| | | |
| | | tr > th { |
| | | height: 60px; |
| | | } |
| | | .instore_td { |
| | | border: 1px solid #000; |
| | | font-size: 12px; |
| | | line-height: 20px; |
| | | text-align: center; |
| | | word-break: break-all; |
| | | } |
| | | |
| | | .material_table_td { |
| | | border: 1px solid #000; |
| | | font-size: 14px; |
| | | line-height: 20px; |
| | | text-align: center; |
| | | word-break: break-all; |
| | | } |
| | | } |
| | | |
| | | .footer { |
| | | display: flex; |
| | | margin-bottom: 15px; |
| | | background-color: #eee; |
| | | font-size: 12px; |
| | | line-height: 21px; |
| | | text-align: center; |
| | | } |
| | | } |
| | | .line { |
| | | width: 100px; /* 线æ¡çé¿åº¦ */ |
| | | height: 0; |
| | | margin: 10px; /* 线æ¡ä¸å
¶ä»å
ç´ çè·ç¦» */ |
| | | border-top: 1px solid black; /* 线æ¡çé¢è²å宽度 */ |
| | | } |
| | | }`; |
| | | |
| | | printJS({ |
| | | // éè¦æå°åºå设置çId |
| | | printable: 'print-area', |
| | | // æå°ç±»å |
| | | type: 'html', |
| | | // é»è®¤å¼ä¸º800ï¼æä»¬ææè®¾ç½®ä¸º100% |
| | | maxWidth: '100%', |
| | | // *代表åºç¨æææ ·å¼ï¼é»è®¤å¼ä¸ºnullï¼å¦æä¸è®¾ç½®ï¼æå°çªå£åä¼å¿½ç¥æææ ·å¼ |
| | | targetStyles: ['*'], |
| | | // font_size: '9pt', |
| | | scanStyles: false, |
| | | style: `@page {size: auto; margin: 0mm;} html, ${_style}`, |
| | | } as unknown as Configuration); |
| | | closeFullLoading(); |
| | | }); |
| | | } |
| | | </script> |