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>
+    &nbsp;
+    <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