From 9da81a196848053ea60342ed1d3da783efd22a11 Mon Sep 17 00:00:00 2001 From: Cloud Zhang <941187371@qq.com> Date: 星期五, 10 五月 2024 10:00:21 +0800 Subject: [PATCH] 锡膏胶水操作 --- src/api/tigerapi/mes/smt/solder.ts | 159 ++++++++ src/api/tigerapi/mes/smt/solderhis.ts | 77 ++++ src/views/tigerprojects/mes/smt/solder/smt_solder/SolderModal.vue | 142 +++++++ src/views/tigerprojects/mes/smt/solder/smt_solder/index.vue | 136 +++++++ src/views/tigerprojects/mes/smt/solder/smt_solder/smt_solder.data.ts | 78 ++++ src/views/tigerprojects/mes/smt/solder/smt_solder_his/smt_solder.data.ts | 109 ++++++ src/views/tigerprojects/mes/smt/tool/smt_tool/index.vue | 108 ++++++ src/views/tigerprojects/mes/smt/tool/smt_tool/wms_item_sum.data.ts | 52 ++ src/views/tigerprojects/mes/smt/solder/smt_solder_his/index.vue | 136 +++++++ src/views/tigerprojects/test/mqtt/index.vue | 37 + src/views/tigerprojects/mes/smt/smttable/index.vue | 0 11 files changed, 1,024 insertions(+), 10 deletions(-) diff --git a/src/api/tigerapi/mes/smt/solder.ts b/src/api/tigerapi/mes/smt/solder.ts new file mode 100644 index 0000000..a2c7547 --- /dev/null +++ b/src/api/tigerapi/mes/smt/solder.ts @@ -0,0 +1,159 @@ +import { buildUUID } from '../../../../utils/uuid'; +//import { ApiAction, ApiActionPage } from '../../model/baseModel'; +import { genAction, Api } from '../../system'; +import { useUserStore } from '/@/store/modules/user'; +import { defHttp } from '/@/utils/http/axios'; +import { isNullOrEmpty } from '/@/utils/is'; +import { formatToDateTime } from '/@/utils/dateUtil'; + +/* + * 鑾峰彇閿¤啅鑳舵按淇℃伅 + */ + +export const getsolderListByPage = async (params: any) => { + let order = '' + if (params.order != undefined) { + order = params.order == 'descend' ? (params.field + ' desc') : params.field + } + let sqlcmd = '1=1'; + if (params?.UPN != undefined && params?.UPN != '') { + sqlcmd += " And UPN like '%" + params?.UPN + "%'"; + } + + let option ={ + UserId:useUserStore().getUserInfo.userId as string, + ByOrg:true, + OrgCode:useUserStore().getUserInfo.orgCode as string + } + if (!isNullOrEmpty(params.page)) { + const usParams = genAction('SMT_SOLDER', { + QueryAble_T: '', + where: sqlcmd, + order: order, + page: { + pageAble_T: 'string', + draw: 1, + pageIndex: params.page, + pageSize: params.pageSize, + } + }); + return getFinishedwarehouseListByPageAsync(usParams); + } else { + const usParams = genAction('SMT_SOLDER', { + QueryAble_T: '', + where: sqlcmd, + option + },option); + return getFinishedwarehouseListByPageAsync(usParams); + } + // const rParams = genActionPage('BIZ_ERP_PROD_IN', sqlcmd, params.page, params.pageSize,option); + // return getFinishedwarehouseListByPageAsync(rParams); +}; +async function getFinishedwarehouseListByPageAsync(params: any) { + const data = await defHttp.post( + { url: Api.QueryUrl, params }, + { + isTransformResponse: false, + }, + ); + const model = { + items: data.Data.page.data, + total: data.Data.page.totals, + }; + return model; +} +//鏂板閿¤啅鑳舵按淇℃伅 +export const SaveSolder = async (params: Recordable, isUpdate: boolean) => { + const Solderitem: any = { + ID: params.ID, + CREATE_TIME: params?.CREATE_TIME, + CREATE_USER: params?.CREATE_USER, + UPDATE_TIME: params?.UPDATE_TIME, + UPDATE_USER: params?.UPDATE_USER, + GHOST_ROW: params?.GHOST_ROW, + AUTH_ORG: params?.AUTH_ORG, + AUTH_PROD: params?.AUTH_PROD, + AUTH_WH: params?.AUTH_WH, + UPN: params.UPN, + CPN: params.CPN, + TYPE: params.TYPE, + STATUS: params?.STATUS, + EXP_DATE: params.EXP_DATE, + LINE_CODE: params?.LINE_CODE, + IS_OUT: params?.IS_OUT, + OUT_DATE: params?.OUT_DATE, + OUT_USER: params?.OUT_USER, + IS_SEND: params?.IS_SEND, + SEND_DATE: params?.SEND_DATE, + SEND_USER: params?.SEND_USER, + IS_OPEN: params?.IS_OPEN, + OPEN_DATE: params?.OPEN_DATE, + OPEN_USER: params?.OPEN_USER, + FIRST_DATE: params?.FIRST_DATE, + FIRST_USER: params?.FIRST_USER, + STIR_SEQ: params?.STIR_SEQ, + STIR_DATE: params?.STIR_DATE, + STIR_USER: params?.STIR_USER, + REFREEZE_SEQ: params?.REFREEZE_SEQ, + REFREEZE_DATE: params?.REFREEZE_DATE, + REFREEZE_USER: params?.REFREEZE_USER, + REMARK: params?.REMARK, + + }; + let data; + + if (isUpdate) { + Solderitem.STATUS=6; + const time = new Date(); + Solderitem.UPDATE_TIME = formatToDateTime(time); + Solderitem.UPDATE_USER = useUserStore().getUserInfo.userId as string; + // regionitem.ORG_CODE = useUserStore().getUserInfo.orgCode as string; + // regionitem.AUTH_ORG = useUserStore().getUserInfo.orgCode as string; + data = await defHttp.post( + { url: Api.UpdateEntity, params: genAction('SMT_SOLDER', Solderitem) }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); + } else { + // const usParams = genAction( + // 'SMT_SOLDER', + // "REGION_CODE='" + params.REGION_CODE + "'AND AUTH_ORG='" + regionitem.ORG_CODE + "'", + // ); + //var check = await isExist(usParams); + //console.log('check',check) + //if (!check.Data) { + Solderitem.ID = buildUUID(); //鐢熸垚GUID + Solderitem.UPDATE_TIME = formatToDateTime(new Date()); + Solderitem.CREATE_USER = useUserStore().getUserInfo.userId as string; + Solderitem.UPDATE_USER = useUserStore().getUserInfo.userId as string; + // regionitem.ORG_CODE = useUserStore().getUserInfo.orgCode as string; + // regionitem.AUTH_ORG = useUserStore().getUserInfo.orgCode as string; + data = await defHttp.post( + { url: Api.AddEntity, params: genAction('SMT_SOLDER', Solderitem) }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); + //} else { + // return check.Message; + //return '閲嶅浜�'; + //} + } + return data; +}; +//涓嬫媺鍒楄〃 +// STATUSs 鍗曟嵁鐘舵�� +export const optionsListApi = async (params: Recordable) => { + const usParams = genAction('SMT_SOLDER+STATUSs', ''); + return await defHttp.post( + { url: Api.urlQueryEnum, params: usParams }, + { + errorMessageMode: 'none', + isTransformResponse: false, + // apiUrl: globSetting.taskApiUrl + }, + ); +}; \ No newline at end of file diff --git a/src/api/tigerapi/mes/smt/solderhis.ts b/src/api/tigerapi/mes/smt/solderhis.ts new file mode 100644 index 0000000..b9f5e8e --- /dev/null +++ b/src/api/tigerapi/mes/smt/solderhis.ts @@ -0,0 +1,77 @@ +import { buildUUID } from '../../../../utils/uuid'; +//import { ApiAction, ApiActionPage } from '../../model/baseModel'; +import { genAction, Api } from '../../system'; +import { useUserStore } from '/@/store/modules/user'; +import { defHttp } from '/@/utils/http/axios'; +import { isNullOrEmpty } from '/@/utils/is'; +import { formatToDateTime } from '/@/utils/dateUtil'; + +/* + * 鑾峰彇閿¤啅鑳舵按淇℃伅 + */ + +export const getsolderListByPage = async (params: any) => { + let order = '' + if (params.order != undefined) { + order = params.order == 'descend' ? (params.field + ' desc') : params.field + } + let sqlcmd = '1=1'; + if (params?.UPN != undefined && params?.UPN != '') { + sqlcmd += " And UPN like '%" + params?.UPN + "%'"; + } + + let option ={ + UserId:useUserStore().getUserInfo.userId as string, + ByOrg:true, + OrgCode:useUserStore().getUserInfo.orgCode as string + } + if (!isNullOrEmpty(params.page)) { + const usParams = genAction('SMT_SOLDER_HIS', { + QueryAble_T: '', + where: sqlcmd, + order: order, + page: { + pageAble_T: 'string', + draw: 1, + pageIndex: params.page, + pageSize: params.pageSize, + } + }); + return getFinishedwarehouseListByPageAsync(usParams); + } else { + const usParams = genAction('SMT_SOLDER_HIS', { + QueryAble_T: '', + where: sqlcmd, + option + },option); + return getFinishedwarehouseListByPageAsync(usParams); + } + // const rParams = genActionPage('BIZ_ERP_PROD_IN', sqlcmd, params.page, params.pageSize,option); + // return getFinishedwarehouseListByPageAsync(rParams); +}; +async function getFinishedwarehouseListByPageAsync(params: any) { + const data = await defHttp.post( + { url: Api.QueryUrl, params }, + { + isTransformResponse: false, + }, + ); + const model = { + items: data.Data.page.data, + total: data.Data.page.totals, + }; + return model; +} +//涓嬫媺鍒楄〃 +// STATUSs 鍗曟嵁鐘舵�� +export const optionsListApi = async (params: Recordable) => { + const usParams = genAction('SMT_SOLDER+STATUSs', ''); + return await defHttp.post( + { url: Api.urlQueryEnum, params: usParams }, + { + errorMessageMode: 'none', + isTransformResponse: false, + // apiUrl: globSetting.taskApiUrl + }, + ); +}; \ No newline at end of file diff --git a/src/views/tigerprojects/mes/prod/smttable/index.vue b/src/views/tigerprojects/mes/smt/smttable/index.vue similarity index 100% rename from src/views/tigerprojects/mes/prod/smttable/index.vue rename to src/views/tigerprojects/mes/smt/smttable/index.vue diff --git a/src/views/tigerprojects/mes/smt/solder/smt_solder/SolderModal.vue b/src/views/tigerprojects/mes/smt/solder/smt_solder/SolderModal.vue new file mode 100644 index 0000000..92c9f11 --- /dev/null +++ b/src/views/tigerprojects/mes/smt/solder/smt_solder/SolderModal.vue @@ -0,0 +1,142 @@ +<template> + <BasicModal width="700px" :height=300 v-bind="$attrs" @register="register" :title="t('娣诲姞閿¤啅鑳舵按璁板綍')" @ok="handleSubmit"> + <div style="width: 600px;height: 300px;" class="pt-24px pr-12px"> + <BasicForm @register="registerForm" :model="model" /> + </div> + </BasicModal> +</template> +<script lang="ts"> +import { defineComponent, ref, nextTick, unref } from 'vue'; +import { BasicModal, useModalInner } from '/@/components/Modal'; +import { BasicForm, FormSchema, useForm } from '/@/components/Form/index'; +import { SaveSolder,optionsListApi } from '/@/api/tigerapi/mes/smt/solder'; +import { useI18n } from '/@/hooks/web/useI18n'; +import { useMessage } from '/@/hooks/web/useMessage'; +import{ useLocale } from '/@/locales/useLocale'; + +const { getLocale }=useLocale(); + +const { t } = useI18n(''); +const { createMessage } = useMessage(); +const schemas: FormSchema[] = [ + { + field: 'UPN', + component: 'Input', + label: 'UPN', + defaultValue: '', + colProps: { + span: 12, + }, + required: true, + }, + { + field: 'CPN', + component: 'Input', + label: 'CPN缂栫爜', + defaultValue: '', + colProps: { + span: 12, + }, + required: true, + }, + { + field: 'TYPE', + label: '绫诲瀷', + component: 'ApiSelect', + colProps: { span: 12 }, + componentProps: { + api: optionsListApi, + resultField: 'Data', + labelField: unref(getLocale)=='zh_CN'?'Desc':'Name', + valueField: 'Value', + }, + }, + { + field: 'EXP_DATE', + component: 'DatePicker', + label: '鏈夋晥鏈�', + colProps: { + span: 12, + }, + required: true, + }, +]; +export default defineComponent({ + components: { BasicModal, BasicForm }, + props: { + userData: { type: Object }, + }, + emit: ['success', 'register'], + setup(_, { emit }) { + const modelRef = ref({}); + const [ + registerForm, + { + // setFieldsValue, + // setProps + validate, + }, + ] = useForm({ + labelWidth: 120, + schemas, + showActionButtonGroup: false, + actionColOptions: { + span: 24, + }, + }); + + const [register, { setModalProps, closeModal }] = useModalInner((data) => { + setModalProps({ confirmLoading: false }); + data && onDataReceive(data); + }); + + function onDataReceive(data) { + console.log('Data Received', data); + // 鏂瑰紡1; + // setFieldsValue({ + // field2: data.data, + // field1: data.info, + // }); + + // // 鏂瑰紡2 + modelRef.value = { field2: data.data, field1: data.info, SHELF_CODE: '', SHELF_NAME: '' }; + + // setProps({ + // model:{ field2: data.data, field1: data.info } + // }) + } + + // function handleVisibleChange(v) { + // v && props.userData && nextTick(() => onDataReceive(props.userData)); + // } + + async function handleSubmit() { + try { + const values = await validate(); + setModalProps({ confirmLoading: true }); + // TODO custom api + //娣诲姞閿¤啅鑳舵按璁板綍 + const apiAction = SaveSolder(values, unref(false)); + apiAction.then((action) => { + if (action) { + if (action.IsSuccessed) { + closeModal(); + createMessage.success(t('娣诲姞鎴愬姛')); + emit('success', { + isUpdate: unref(false), + values: { ...values, id: 0 }, + }); + } + } else { + createMessage.error(t('娣诲姞澶辫触,浠g爜宸蹭娇鐢�')); + } + }); + } finally { + setModalProps({ confirmLoading: false }); + } + } + + return { register, schemas, registerForm, model: modelRef, handleSubmit, t }; + }, +}); +</script> diff --git a/src/views/tigerprojects/mes/smt/solder/smt_solder/index.vue b/src/views/tigerprojects/mes/smt/solder/smt_solder/index.vue new file mode 100644 index 0000000..36c4960 --- /dev/null +++ b/src/views/tigerprojects/mes/smt/solder/smt_solder/index.vue @@ -0,0 +1,136 @@ +<template> + <div> + <BasicTable @register="registerTable"> + <template #toolbar> + <a-button color="primary" @click="solderAdd"> 鏂板 </a-button> + </template> + <template #action="{ record }"> + <TableAction :actions="[ + { + icon: 'clarity:info-standard-line', + tooltip: '鎶ュ簾', + onClick: handleEdit.bind(null, record), + }, + ]" /> + </template> + </BasicTable> + <Loading :loading="compState.loading" :tip="compState.tip" /> + <!-- <WmsItemDrawer @register="registerDrawer" @success="handleSuccess" /> --> + <SolderModal @register="registerSolder" @success="handleSuccess" /> + </div> +</template> +<script lang="ts" setup> +import { reactive } from 'vue'; +import { aoaToSheetXlsx } from '/@/components/Excel'; +import { BasicTable, useTable, TableAction } from '/@/components/Table'; +import SolderModal from './SolderModal.vue'; +import { useModal } from '/@/components/Modal'; +import { columns, searchFormSchema } from './smt_solder.data'; +import { getsolderListByPage } from '/@/api/tigerapi/mes/smt/solder'; +import { useGo } from '/@/hooks/web/usePage'; +import { Loading } from '/@/components/Loading'; +import { useMessage } from '/@/hooks/web/useMessage'; +import { useI18n } from '/@/hooks/web/useI18n'; +import { SaveSolder } from '/@/api/tigerapi/mes/smt/solder'; + +const { t } = useI18n(); +const { createMessage } = useMessage(); +const go = useGo(); +const compState = reactive({ + absolute: false, + loading: false, + tip: '鍔犺浇涓�...', +}); +const [registerSolder, { openModal: openSolderModal }] = useModal(); +const [registerTable,{getForm,getPaginationRef,reload}] = useTable({ + title: '閿¤啅鑳舵按淇℃伅', + api: getsolderListByPage, + columns, + formConfig: { + labelWidth: 120, + schemas: searchFormSchema, + }, + actionColumn: { + width: 80, + title: '鎿嶄綔', + dataIndex: 'action', + slots: { customRender: 'action' }, + fixed: 'right', //undefined, + }, + ellipsis:true, + useSearchForm: true, + showTableSetting: false, + bordered: true, + showIndexColumn: false, +}); +let arr: any[] = []; +//瀵煎嚭 +// function aoaToExcel() { +// const totals = getPaginationRef().total +// if (totals < 30000) { +// arr = []; +// compState.loading = true; +// const col = getForm().getFieldsValue() +// getWmsItemSumByPage(col).then((res) => { +// res.items.forEach(element => { +// arr.push({ +// '浠撳簱': element.WH_CODE, +// '鐗╂枡浠g爜': element.ITEM_CODE, +// '鐗╂枡鍚嶇О': element.ITEM_NAME, +// '鏁伴噺': element.ZK_QTY, +// '鍗曚綅': element.UNIT +// }); +// }); +// const arrHeader = columns.map((column) => column.title); +// const arrData = arr.map((item) => { +// return Object.keys(item).map((key) => item[key]); +// }); +// // 淇濊瘉data椤哄簭涓巋eader涓�鑷� +// if(arr.length<30000){ +// aoaToSheetXlsx({ +// data: arrData, +// header: arrHeader, +// filename: '姹囨�绘姤琛�.xlsx', +// }); +// }else{ +// createMessage.error(t('瀵煎嚭鏁版嵁涓嶈兘瓒呰繃涓変竾鏉★紝濡傞渶瑕佹洿澶氱殑璇疯仈绯荤鐞嗗憳')); +// } + +// compState.loading = false; + +// }) + +// } else { +// createMessage.error(t('瀵煎嚭鏁版嵁涓嶈兘瓒呰繃涓変竾鏉★紝濡傞渶瑕佹洿澶氱殑璇疯仈绯荤鐞嗗憳')); +// } + + +// } +//璺宠浆鍒板疄鏃跺簱瀛� +function handleEdit(record: any) { + //璺宠浆椤甸潰 + //go('/WmsItem/' + record.ITEM_CODE); + const apiAction = SaveSolder(record, true); + apiAction.then((action) => { + if (action) { + if (action.IsSuccessed) { + createMessage.success(t('宸叉姤搴熸垚鍔�')); + } + } else { + createMessage.error(action.Message); + } + }); + +} +function solderAdd(){ + //alert("鏂板") + openSolderModal(true, { + data: 'content', + info: 'Info', + }); +} + +function handleSuccess() { + reload(); +} +</script> diff --git a/src/views/tigerprojects/mes/smt/solder/smt_solder/smt_solder.data.ts b/src/views/tigerprojects/mes/smt/solder/smt_solder/smt_solder.data.ts new file mode 100644 index 0000000..18250bb --- /dev/null +++ b/src/views/tigerprojects/mes/smt/solder/smt_solder/smt_solder.data.ts @@ -0,0 +1,78 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; +import { optionsListApi } from '/@/api/tigerapi/wms/wms_item'; +import { h } from 'vue'; +import { Tag, Tooltip } from 'ant-design-vue'; + +export const columns: BasicColumn[] = [ + { + title: '閿¤啅UPN缂栫爜', + dataIndex: 'UPN', + width:200, + sorter: true, + resizable:true + }, + { + title: 'CPN缂栫爜', + dataIndex: 'CPN', + width: 200, + sorter: true, + resizable:true + }, + { + title: '绫诲瀷', + dataIndex: 'TYPE', + width: 100, + sorter: true, + resizable:true, + customRender: ({ record }) => { + const status = record.TYPE; + var text = ''; + var color = ''; + switch (status) { + case '0': + text = '閿¤啅'; + color = 'green'; + break; + case '1': + text = '鑳舵按'; + color = 'blue'; + break; + default: + break; + } + return h(Tooltip, { title: 'xxxxxx' }, () => h(Tag, { color: color }, () => text)); + }, + }, + { + title: '瓒呮湡鏃堕棿缂栫爜', + dataIndex: 'EXP_DATE', + width:100, + sorter: true, + resizable:true + }, + { + title: '鍒涘缓浜�', + dataIndex: 'CREATE_USER', + width:100, + sorter: true, + resizable:true + } + , + { + title: '鍒涘缓鏃堕棿', + dataIndex: 'CREATE_TIME', + width:100, + sorter: true, + resizable:true + } +]; + +export const searchFormSchema: FormSchema[] = [ + { + field: 'UPN', + label: '閿¤啅UPN缂栫爜', + component: 'Input', + colProps: { span: 8 }, + } +]; diff --git a/src/views/tigerprojects/mes/smt/solder/smt_solder_his/index.vue b/src/views/tigerprojects/mes/smt/solder/smt_solder_his/index.vue new file mode 100644 index 0000000..fafccff --- /dev/null +++ b/src/views/tigerprojects/mes/smt/solder/smt_solder_his/index.vue @@ -0,0 +1,136 @@ +<template> + <div> + <BasicTable @register="registerTable"> + <!-- <template #toolbar> + <a-button color="primary" @click="solderAdd"> 鏂板 </a-button> + </template> --> + <template #action="{ record }"> + <!-- <TableAction :actions="[ + { + icon: 'clarity:info-standard-line', + tooltip: '璇︽儏', + onClick: handleEdit.bind(null, record), + }, + ]" /> --> + </template> + </BasicTable> + <Loading :loading="compState.loading" :tip="compState.tip" /> + <!-- <WmsItemDrawer @register="registerDrawer" @success="handleSuccess" /> --> + <!-- <SolderModal @register="registerSolder" @success="handleSuccess" /> --> + </div> +</template> +<script lang="ts" setup> +import { reactive } from 'vue'; +import { aoaToSheetXlsx } from '/@/components/Excel'; +import { BasicTable, useTable, TableAction } from '/@/components/Table'; +//import SolderModal from './SolderModal.vue'; +import { useModal } from '/@/components/Modal'; +import { columns, searchFormSchema } from './smt_solder.data'; +import { getsolderListByPage } from '/@/api/tigerapi/mes/smt/solderhis'; +import { useGo } from '/@/hooks/web/usePage'; +import { Loading } from '/@/components/Loading'; +import { useMessage } from '/@/hooks/web/useMessage'; +import { useI18n } from '/@/hooks/web/useI18n'; +import { SaveSolder } from '/@/api/tigerapi/mes/smt/solder'; + +const { t } = useI18n(); +const { createMessage } = useMessage(); +const go = useGo(); +const compState = reactive({ + absolute: false, + loading: false, + tip: '鍔犺浇涓�...', +}); +//const [registerSolder, { openModal: openSolderModal }] = useModal(); +const [registerTable,{getForm,getPaginationRef,reload}] = useTable({ + title: '閿¤啅鑳舵按鍘嗗彶', + api: getsolderListByPage, + columns, + formConfig: { + labelWidth: 120, + schemas: searchFormSchema, + }, + // actionColumn: { + // width: 80, + // title: '鎿嶄綔', + // dataIndex: 'action', + // slots: { customRender: 'action' }, + // fixed: 'right', //undefined, + // }, + ellipsis:true, + useSearchForm: true, + showTableSetting: false, + bordered: true, + showIndexColumn: false, +}); +let arr: any[] = []; +//瀵煎嚭 +// function aoaToExcel() { +// const totals = getPaginationRef().total +// if (totals < 30000) { +// arr = []; +// compState.loading = true; +// const col = getForm().getFieldsValue() +// getWmsItemSumByPage(col).then((res) => { +// res.items.forEach(element => { +// arr.push({ +// '浠撳簱': element.WH_CODE, +// '鐗╂枡浠g爜': element.ITEM_CODE, +// '鐗╂枡鍚嶇О': element.ITEM_NAME, +// '鏁伴噺': element.ZK_QTY, +// '鍗曚綅': element.UNIT +// }); +// }); +// const arrHeader = columns.map((column) => column.title); +// const arrData = arr.map((item) => { +// return Object.keys(item).map((key) => item[key]); +// }); +// // 淇濊瘉data椤哄簭涓巋eader涓�鑷� +// if(arr.length<30000){ +// aoaToSheetXlsx({ +// data: arrData, +// header: arrHeader, +// filename: '姹囨�绘姤琛�.xlsx', +// }); +// }else{ +// createMessage.error(t('瀵煎嚭鏁版嵁涓嶈兘瓒呰繃涓変竾鏉★紝濡傞渶瑕佹洿澶氱殑璇疯仈绯荤鐞嗗憳')); +// } + +// compState.loading = false; + +// }) + +// } else { +// createMessage.error(t('瀵煎嚭鏁版嵁涓嶈兘瓒呰繃涓変竾鏉★紝濡傞渶瑕佹洿澶氱殑璇疯仈绯荤鐞嗗憳')); +// } + + +// } +//璺宠浆鍒板疄鏃跺簱瀛� +function handleEdit(record: any) { + //璺宠浆椤甸潰 + //go('/WmsItem/' + record.ITEM_CODE); + // const apiAction = SaveSolder(record, true); + // apiAction.then((action) => { + // if (action) { + // if (action.IsSuccessed) { + // createMessage.success(t('宸叉姤搴熸垚鍔�')); + // } + // } else { + // createMessage.error(action.Message); + // } + // }); + +} +// function solderAdd(){ +// //alert("鏂板") +// openSolderModal(true, { +// data: 'content', +// info: 'Info', +// }); +// } + +function handleSuccess() { + reload(); +} +</script> diff --git a/src/views/tigerprojects/mes/smt/solder/smt_solder_his/smt_solder.data.ts b/src/views/tigerprojects/mes/smt/solder/smt_solder_his/smt_solder.data.ts new file mode 100644 index 0000000..bc97825 --- /dev/null +++ b/src/views/tigerprojects/mes/smt/solder/smt_solder_his/smt_solder.data.ts @@ -0,0 +1,109 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; +import { optionsListApi } from '/@/api/tigerapi/wms/wms_item'; +import { h } from 'vue'; +import { Tag, Tooltip } from 'ant-design-vue'; + +export const columns: BasicColumn[] = [ + { + title: '閿¤啅UPN缂栫爜', + dataIndex: 'UPN', + width: 200, + sorter: true, + resizable: true + }, + { + title: 'CPN缂栫爜', + dataIndex: 'CPN', + width: 200, + sorter: true, + resizable: true + }, + { + title: '绾垮埆', + dataIndex: 'LINE_CODE', + width: 150, + sorter: true, + resizable: true + }, + { + title: '鍏宠仈閽㈢綉', + dataIndex: 'SMT_STENCIL', + width: 150, + sorter: true, + resizable: true + }, + { + title: '鐘舵��', + dataIndex: 'STATUS', + width: 100, + sorter: true, + resizable: true, + customRender: ({ record }) => { + const status = record.STATUS; + var text = ''; + var color = ''; + switch (status) { + case 0: + text = '鐧昏'; + color = 'green'; + break; + case 1: + text = '鍏ュ簱'; + color = 'blue'; + break; + case 2: + text = '鍥炴俯'; + color = 'blue'; + break; + case 3: + text = '棰嗙敤'; + color = 'blue'; + break; + case 4: + text = '涓婄嚎'; + color = 'blue'; + break; + case 5: + text = '鎼呮媽'; + color = 'blue'; + break; + case 6: + text = '涓嬬嚎'; + color = 'blue'; + break; + case 7: + text = '鐢ㄦ瘯'; + color = 'blue'; + break; + default: + break; + } + return h(Tooltip, { title: 'xxxxxx' }, () => h(Tag, { color: color }, () => text)); + }, + }, + { + title: '鍒涘缓浜�', + dataIndex: 'CREATE_USER', + width: 100, + sorter: true, + resizable: true + } + , + { + title: '鍒涘缓鏃堕棿', + dataIndex: 'CREATE_TIME', + width: 100, + sorter: true, + resizable: true + } +]; + +export const searchFormSchema: FormSchema[] = [ + { + field: 'UPN', + label: '閿¤啅UPN缂栫爜', + component: 'Input', + colProps: { span: 8 }, + } +]; diff --git a/src/views/tigerprojects/mes/smt/tool/smt_tool/index.vue b/src/views/tigerprojects/mes/smt/tool/smt_tool/index.vue new file mode 100644 index 0000000..ed9fb3b --- /dev/null +++ b/src/views/tigerprojects/mes/smt/tool/smt_tool/index.vue @@ -0,0 +1,108 @@ +<template> + <div> + <BasicTable @register="registerTable"> + <template #toolbar> + <a-button preIcon="OutR|svg" ghost color="success" @click="aoaToExcel"> 瀵煎嚭 </a-button> + </template> + <template #action="{ record }"> + <TableAction :actions="[ + { + icon: 'clarity:info-standard-line', + tooltip: '鏌ョ湅鍗曟嵁璇︽儏', + onClick: handleEdit.bind(null, record), + }, + ]" /> + </template> + </BasicTable> + <Loading :loading="compState.loading" :tip="compState.tip" /> + <!-- <WmsItemDrawer @register="registerDrawer" @success="handleSuccess" /> --> + </div> +</template> +<script lang="ts" setup> +import { reactive } from 'vue'; +import { aoaToSheetXlsx } from '/@/components/Excel'; +import { BasicTable, useTable, TableAction } from '/@/components/Table'; + +import { columns, searchFormSchema } from './wms_item_sum.data'; +import { getWmsItemSumByPage } from '/@/api/tigerapi/wms/wms_item'; +import { useGo } from '/@/hooks/web/usePage'; +import { Loading } from '/@/components/Loading'; +import { useMessage } from '/@/hooks/web/useMessage'; +import { useI18n } from '/@/hooks/web/useI18n'; + +const { t } = useI18n(); +const { createMessage } = useMessage(); +const go = useGo(); +const compState = reactive({ + absolute: false, + loading: false, + tip: '鍔犺浇涓�...', +}); +const [registerTable,{getForm,getPaginationRef}] = useTable({ + title: '搴撳瓨姹囨��', + api: getWmsItemSumByPage, + columns, + formConfig: { + labelWidth: 120, + schemas: searchFormSchema, + }, + actionColumn: { + width: 80, + title: '鎿嶄綔', + dataIndex: 'action', + slots: { customRender: 'action' }, + fixed: 'right', //undefined, + }, + ellipsis:true, + useSearchForm: true, + showTableSetting: false, + bordered: true, + showIndexColumn: false, +}); +let arr: any[] = []; +function aoaToExcel() { + const totals = getPaginationRef().total + if (totals < 30000) { + arr = []; + compState.loading = true; + const col = getForm().getFieldsValue() + getWmsItemSumByPage(col).then((res) => { + res.items.forEach(element => { + arr.push({ + '浠撳簱': element.WH_CODE, + '鐗╂枡浠g爜': element.ITEM_CODE, + '鐗╂枡鍚嶇О': element.ITEM_NAME, + '鏁伴噺': element.ZK_QTY, + '鍗曚綅': element.UNIT + }); + }); + const arrHeader = columns.map((column) => column.title); + const arrData = arr.map((item) => { + return Object.keys(item).map((key) => item[key]); + }); + // 淇濊瘉data椤哄簭涓巋eader涓�鑷� + if(arr.length<30000){ + aoaToSheetXlsx({ + data: arrData, + header: arrHeader, + filename: '姹囨�绘姤琛�.xlsx', + }); + }else{ + createMessage.error(t('瀵煎嚭鏁版嵁涓嶈兘瓒呰繃涓変竾鏉★紝濡傞渶瑕佹洿澶氱殑璇疯仈绯荤鐞嗗憳')); + } + + compState.loading = false; + + }) + + } else { + createMessage.error(t('瀵煎嚭鏁版嵁涓嶈兘瓒呰繃涓変竾鏉★紝濡傞渶瑕佹洿澶氱殑璇疯仈绯荤鐞嗗憳')); + } + + +} +//璺宠浆鍒板疄鏃跺簱瀛� +function handleEdit(record: any) { + go('/WmsItem/' + record.ITEM_CODE); +} +</script> diff --git a/src/views/tigerprojects/mes/smt/tool/smt_tool/wms_item_sum.data.ts b/src/views/tigerprojects/mes/smt/tool/smt_tool/wms_item_sum.data.ts new file mode 100644 index 0000000..e1a2f5c --- /dev/null +++ b/src/views/tigerprojects/mes/smt/tool/smt_tool/wms_item_sum.data.ts @@ -0,0 +1,52 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; +import { optionsListApi } from '/@/api/tigerapi/wms/wms_item'; +import { h } from 'vue'; +import { Tag } from 'ant-design-vue'; + +export const columns: BasicColumn[] = [ + { + title: '浠撳簱', + dataIndex: 'WH_CODE', + width:100, + sorter: true, + resizable:true + }, + { + title: '鐗╂枡浠g爜', + dataIndex: 'ITEM_CODE', + width: 200, + sorter: true, + resizable:true + }, + { + title: '鐗╂枡鍚嶇О', + dataIndex: 'ITEM_NAME', + width: 300, + sorter: true, + resizable:true + }, + { + title: '鏁伴噺', + dataIndex: 'ZK_QTY', + width:100, + sorter: true, + resizable:true + } +]; + +export const searchFormSchema: FormSchema[] = [ + { + field: 'WH_CODE', + label: '浠撳簱', + component: 'Input', + colProps: { span: 8 }, + }, + + { + field: 'ITEM_CODE', + label: '鐗╂枡浠g爜', + component: 'Input', + colProps: { span: 8 }, + } +]; diff --git a/src/views/tigerprojects/test/mqtt/index.vue b/src/views/tigerprojects/test/mqtt/index.vue index b06af97..017b675 100644 --- a/src/views/tigerprojects/test/mqtt/index.vue +++ b/src/views/tigerprojects/test/mqtt/index.vue @@ -1,7 +1,17 @@ <template> - <div> + <div style="margin: auto 10px;"> + <!-- <p></p> + <p>璁㈤槄鐨勪富棰�</p> + <input type="text"> + <p>鍙戝竷淇℃伅</p> + <input type="text"> + <button style="color:aquamarine;background-color: brown;" @click="">鍙戦��</button> + + <div style="background-color:darkgrey;height: 500px; width: 500px;position:relative;left: 260px;top:-110px"> + </div> --> </div> + </template> <script lang="ts"> import { defineComponent, ref, unref } from 'vue'; @@ -12,7 +22,7 @@ connectTimeout:4000, clientId:'mqtt_'+ Math.random().toString(16), } -client = mqtt.connect('ws://192.168.31.151/mgtt',options) +client = mqtt.connect('ws://broker.emqx.io/mqtt',options) export default { name: 'Helloworld', data(){ @@ -27,18 +37,25 @@ mqttMsg(){ client.on('connect',(e)=>{ console.log('杩炴帴鎴愬姛') - client.subscribe('/test/helloworld',{qos:0},(error)=>{ + client.subscribe('sensor/1/temperature',{qos:0},(error)=>{ console.log(error) }) client.on("message",(topic,message)=>{ - console.log('鏀跺埌鏉ヨ嚜',topic,'鐨勬秷鎭�',message.tostring()) + console.log('鏀跺埌鏉ヨ嚜',topic,'鐨勬秷鎭�',message.toString()) + if(message.toString()=='hi'){ + client.publish('testtopic/one','hello',{ + qos:0,rein:false + },(error)=>{ + console.log('error',error) + }) + } }) - client.on("reconnect",(error)=>{ - console.log('姝e湪閲嶈繛',error) - }) - client.on("reconnect",(error)=>{ - console.log('杩炴帴澶辫触',error) - }) + // client.on("reconnect",(error)=>{ + // console.log('姝e湪閲嶈繛',error) + // }) + // client.on("reconnect",(error)=>{ + // console.log('杩炴帴澶辫触',error) + // }) }) } } -- Gitblit v1.9.3