init(projects): 整体修改

master
xushilin 12 months ago
parent 5539ca35ab
commit e71b6863f4

@ -71,17 +71,9 @@ watch(
// const msgData = JSON.parse(JSON.parse(newValue)); // const msgData = JSON.parse(JSON.parse(newValue));
const msgData = JSON.parse(newValue); const msgData = JSON.parse(newValue);
const data = JSON.parse(JSON.stringify(msgData)); const data = JSON.parse(JSON.stringify(msgData));
console.log('data ==>', data);
socketStore.setMsg(null); socketStore.setMsg(null);
let baclkTemp;
//
if (data.templateType.includes('enamelCoverReport') && !data.reprintData) {
const result = await getPrintTemplateList({ templateCode: 'enamelCoverBlank' });
baclkTemp = JSON.parse(result.rows[0].content);
hiprintTemplate.value = await new hiprint.PrintTemplate({
template: baclkTemp
});
print({}, '');
}
getPrintTemplateList({ templateCode: data.templateType }).then(async res => { getPrintTemplateList({ templateCode: data.templateType }).then(async res => {
if (res.code === 200) { if (res.code === 200) {

@ -29,6 +29,9 @@ export const useSocketStore = defineStore('socket-store', {
actions: { actions: {
setOpenSocket(socket: string) { setOpenSocket(socket: string) {
if (!socket) return; if (!socket) return;
if (this.connected) {
this.setCloseScoket();
}
// const url = `${wsUrl + socket}?userId=${socket}`; // const url = `${wsUrl + socket}?userId=${socket}`;
const url = `${wsUrl + socket}`; const url = `${wsUrl + socket}`;
this.ws = new WebSocket(url); this.ws = new WebSocket(url);
@ -37,6 +40,7 @@ export const useSocketStore = defineStore('socket-store', {
this.socket = socket; this.socket = socket;
localStorage.setItem('socket', socket); localStorage.setItem('socket', socket);
console.log('连接服务器端成功'); console.log('连接服务器端成功');
window.$message?.success('连接成功');
this.ws.onmessage = res => { this.ws.onmessage = res => {
console.log('res ==> ', res); console.log('res ==> ', res);
this.msg = res.data; this.msg = res.data;
@ -45,6 +49,8 @@ export const useSocketStore = defineStore('socket-store', {
this.ws.onclose = () => { this.ws.onclose = () => {
console.log('WebSocket connection closed. Reconnecting...'); console.log('WebSocket connection closed. Reconnecting...');
this.stopHeartbeat(); this.stopHeartbeat();
window.$message?.success('关闭成功');
if (!this.connected) return;
this.reconnect(); this.reconnect();
}; };
}; };

@ -7,6 +7,7 @@
<n-select <n-select
v-model:value="data.templateCode" v-model:value="data.templateCode"
:options="printTypeList" :options="printTypeList"
style="width: 200px"
placeholder="请选择模板类型" placeholder="请选择模板类型"
@update:value="(val, item: any) => { @update:value="(val, item: any) => {
data.templateName = item.label; data.templateName = item.label;
@ -22,14 +23,15 @@
v-model:value="data.clientId" v-model:value="data.clientId"
:options="clientOptions" :options="clientOptions"
placeholder="请选择客户" placeholder="请选择客户"
style="width: 200px"
@change="selectClient" @change="selectClient"
></n-select> ></n-select>
</n-form-item> </n-form-item>
<n-form-item label="所属用户"> <n-form-item label="所属用户">
<n-input v-model:value="data.userNickName" placeholder="请输入客户"></n-input> <n-input v-model:value="data.userNickName" placeholder="请输入客户" style="width: 200px"></n-input>
</n-form-item> </n-form-item>
<n-form-item label="默认打印机"> <n-form-item label="默认打印机">
<n-input v-model:value="data.defaultPrinterName" placeholder="请输入客户"></n-input> <n-input v-model:value="data.defaultPrinterName" placeholder="请输入客户" style="width: 200px"></n-input>
</n-form-item> </n-form-item>
</n-form> </n-form>
</div> </div>

@ -47,6 +47,7 @@
v-model:value="addForm.templateCode" v-model:value="addForm.templateCode"
:options="printTypeList" :options="printTypeList"
placeholder="请选择打印模板" placeholder="请选择打印模板"
style="width: 200px"
></n-select> ></n-select>
</n-form-item> </n-form-item>
</n-form> </n-form>

@ -79,13 +79,13 @@
@update:value="modelHandleChange" @update:value="modelHandleChange"
/> />
</n-form-item> </n-form-item>
<n-form-item label="轴号" :span="15" path="axleNumber"> <!-- <n-form-item label="轴号" :span="15" path="axleNumber">
<n-input v-model:value="addForm.axleNumber" placeholder="请输入轴号" /> <n-input v-model:value="addForm.axleNumber" placeholder="请输入轴号" />
</n-form-item> </n-form-item>
<n-form-item label="轴数" :span="15" path="axleQuantity"> <n-form-item label="轴数" :span="15" path="axleQuantity">
<n-input-number v-model:value="addForm.axleQuantity" placeholder="请输入轴数" :min="0" :step="2" /> <n-input-number v-model:value="addForm.axleQuantity" placeholder="请输入轴数" :min="0" :step="2" />
</n-form-item> </n-form-item> -->
<n-form-item label="可生产下限" :span="15" path="productionLowerLimit"> <!-- <n-form-item label="可生产下限" :span="15" path="productionLowerLimit">
<n-input-number <n-input-number
v-model:value="addForm.productionLowerLimit" v-model:value="addForm.productionLowerLimit"
placeholder="请输入可生产下限" placeholder="请输入可生产下限"
@ -100,7 +100,7 @@
step="0.01" step="0.01"
min="0" min="0"
/> />
</n-form-item> </n-form-item> -->
<n-form-item label="所属工序" :span="15" path="process"> <n-form-item label="所属工序" :span="15" path="process">
<n-select <n-select
v-model:value="addForm.processId" v-model:value="addForm.processId"
@ -309,19 +309,19 @@ const columns: Ref<DataTableColumns<DataType>> = ref([
key: 'equipmentCode', key: 'equipmentCode',
width: 100 width: 100
}, },
{ // {
title: '设备轴号', // title: '',
align: 'center', // align: 'center',
key: 'axleNumber', // key: 'axleNumber',
width: 100, // width: 100,
render: row => <n-performant-ellipsis>{row.axleNumber}</n-performant-ellipsis> // render: row => <n-performant-ellipsis>{row.axleNumber}</n-performant-ellipsis>
}, // },
{ // {
title: '设备轴数', // title: '',
align: 'center', // align: 'center',
width: 100, // width: 100,
key: 'axleQuantity' // key: 'axleQuantity'
}, // },
{ {
title: '是否启用', title: '是否启用',
key: 'isEnable', key: 'isEnable',
@ -343,18 +343,18 @@ const columns: Ref<DataTableColumns<DataType>> = ref([
); );
} }
}, },
{ // {
title: '可生产产品规格下限', // title: '',
align: 'center', // align: 'center',
key: 'productionLowerLimit', // key: 'productionLowerLimit',
width: 220 // width: 220
}, // },
{ // {
title: '可生产产品规格上限', // title: '',
align: 'center', // align: 'center',
key: 'productionUpperLimit', // key: 'productionUpperLimit',
width: 220 // width: 220
}, // },
{ {
title: '所属工序', title: '所属工序',
align: 'center', align: 'center',

@ -78,7 +78,7 @@
@update:value="modelHandleChange" @update:value="modelHandleChange"
/> />
</n-form-item> </n-form-item>
<n-form-item label="可生产下限" :span="15" path="productionLowerLimit"> <!-- <n-form-item label="可生产下限" :span="15" path="productionLowerLimit">
<n-input-number <n-input-number
v-model:value="addForm.productionLowerLimit" v-model:value="addForm.productionLowerLimit"
placeholder="请输入可生产下限" placeholder="请输入可生产下限"
@ -93,7 +93,7 @@
step="0.01" step="0.01"
min="0" min="0"
/> />
</n-form-item> </n-form-item> -->
<n-form-item label="所属工序" :span="15" path="process"> <n-form-item label="所属工序" :span="15" path="process">
<n-select <n-select
v-model:value="addForm.processId" v-model:value="addForm.processId"
@ -304,16 +304,16 @@ const columns: Ref<DataTableColumns<DataType>> = ref([
); );
} }
}, },
{ // {
title: '可生产产品规格下限', // title: '',
align: 'center', // align: 'center',
key: 'productionLowerLimit' // key: 'productionLowerLimit'
}, // },
{ // {
title: '可生产产品规格上限', // title: '',
align: 'center', // align: 'center',
key: 'productionUpperLimit' // key: 'productionUpperLimit'
}, // },
{ {
title: '所属工序', title: '所属工序',
align: 'center', align: 'center',

@ -44,13 +44,16 @@
<script lang="tsx" setup> <script lang="tsx" setup>
import { ref } from 'vue'; import { ref } from 'vue';
import type { Ref } from 'vue'; import type { Ref } from 'vue';
import { NButton, useMessage } from 'naive-ui'; import {
NButton
// useMessage
} from 'naive-ui';
import type { DataTableColumns } from 'naive-ui'; import type { DataTableColumns } from 'naive-ui';
import { useLoading } from '@/hooks'; import { useLoading } from '@/hooks';
import { getDictDataList } from '@/service/api/system/dictData'; import { getDictDataList } from '@/service/api/system/dictData';
import { dataTableConfig } from '@/config/dataTableConfig'; import { dataTableConfig } from '@/config/dataTableConfig';
import { useSocketStore } from '@/store/modules/socket/index'; import { useSocketStore } from '@/store/modules/socket/index';
const message = useMessage(); // const message = useMessage();
const searchForm = ref<connectSocket.searchForm>({ const searchForm = ref<connectSocket.searchForm>({
pageNum: 1, pageNum: 1,
@ -119,10 +122,10 @@ const columns: Ref<DataTableColumns<connectSocket.TableList>> = ref([
]); ]);
function connect(ip: string) { function connect(ip: string) {
if (socketStore.connected) { // if (socketStore.connected) {
message.warning('已连接,请先断开连接'); // message.warning('');
return; // return;
} // }
socketStore.setOpenSocket(ip); socketStore.setOpenSocket(ip);
} }

@ -112,7 +112,7 @@
></n-select> ></n-select>
</n-space> </n-space>
</n-form-item-grid-item> </n-form-item-grid-item>
<n-form-item-grid-item label="位置" path="axleNumber"> <!-- <n-form-item-grid-item label="位置" path="axleNumber">
<n-space vertical> <n-space vertical>
<n-select <n-select
v-model:value="axleNumberId" v-model:value="axleNumberId"
@ -135,14 +135,13 @@
}" }"
></n-select> ></n-select>
</n-space> </n-space>
</n-form-item-grid-item> </n-form-item-grid-item> -->
</n-grid>
<n-form-item v-show="enamelCoverData.equipmentId && enamelCoverData.axleNumber"> <n-form-item v-show="enamelCoverData.equipmentId && enamelCoverData.axleNumber">
<div style="overflow: auto; max-height: 350px"> <div style="overflow: auto; max-height: 350px">
<n-data-table :loading="rowsLoading" :columns="detailColumns" :data="detailData"></n-data-table> <n-data-table :loading="rowsLoading" :columns="detailColumns" :data="detailData"></n-data-table>
</div> </div>
</n-form-item> </n-form-item>
<n-grid :cols="2" :x-gap="20">
<n-form-item-grid-item label="板料" path="plantName"> <n-form-item-grid-item label="板料" path="plantName">
<n-space vertical> <n-space vertical>
<n-select <n-select
@ -189,7 +188,7 @@
<n-input-number <n-input-number
v-model:value="enamelCoverData.discNumber" v-model:value="enamelCoverData.discNumber"
:style="{ width: formItemWidth }" :style="{ width: formItemWidth }"
placeholder="请输入数" placeholder="请输入插针数"
/> />
</n-form-item-grid-item> </n-form-item-grid-item>
<n-form-item-grid-item label="开始时间" path="startTime"> <n-form-item-grid-item label="开始时间" path="startTime">
@ -253,7 +252,11 @@ import { getDictDataList } from '@/service/api/system/dictData';
import { dataTableConfig } from '@/config/dataTableConfig'; import { dataTableConfig } from '@/config/dataTableConfig';
import { useSearchBtn } from '~/src/hooks/common/useBtn'; import { useSearchBtn } from '~/src/hooks/common/useBtn';
import { useLoading } from '~/src/hooks'; import { useLoading } from '~/src/hooks';
import { getWorkOrderArrange, cancellation, getListByEquipmentId } from '~/src/service/api/plan/productOrder'; import {
getWorkOrderArrange,
cancellation
// getListByEquipmentId,
} from '~/src/service/api/plan/productOrder';
import { addEnamellingWorkorder } from '~/src/service/api/plan/enamellingWorkOrder'; import { addEnamellingWorkorder } from '~/src/service/api/plan/enamellingWorkOrder';
import { formatDate } from '~/src/utils/form/rule'; import { formatDate } from '~/src/utils/form/rule';
import { getStatusName, getPlanStatusName } from '~/src/utils/common/workOrder'; import { getStatusName, getPlanStatusName } from '~/src/utils/common/workOrder';
@ -298,7 +301,7 @@ const locationOptions = ref<planWorkOrder.SelectMixedOption[]>([]);
const standardList = ref<planWorkOrder.SelectMixedOption[]>([]); const standardList = ref<planWorkOrder.SelectMixedOption[]>([]);
const timer = ref<any>(null); // const timer = ref<any>(null);
// const standardItem = ref<planWorkOrder.SelectMixedOption[]>([]); // const standardItem = ref<planWorkOrder.SelectMixedOption[]>([]);
@ -601,24 +604,24 @@ function reset(): void {
search(); search();
} }
function getDetailData() { // function getDetailData() {
if (timer.value) { // if (timer.value) {
clearTimeout(timer.value); // clearTimeout(timer.value);
} // }
timer.value = setTimeout(() => { // timer.value = setTimeout(() => {
if (enamelCoverData.value.equipmentId === null || enamelCoverData.value.axleNumber === null) return; // if (enamelCoverData.value.equipmentId === null || enamelCoverData.value.axleNumber === null) return;
const params = { equipmentId: enamelCoverData.value.equipmentId, axleNumber: enamelCoverData.value.axleNumber }; // const params = { equipmentId: enamelCoverData.value.equipmentId, axleNumber: enamelCoverData.value.axleNumber };
rowsLoading.value = true; // rowsLoading.value = true;
getDetailComplete.value = true; // getDetailComplete.value = true;
getListByEquipmentId(params).then(res => { // getListByEquipmentId(params).then(res => {
rowsLoading.value = false; // rowsLoading.value = false;
getDetailComplete.value = false; // getDetailComplete.value = false;
if (res.code === 200) { // if (res.code === 200) {
detailData.value = res.data; // detailData.value = res.data;
} // }
}); // });
}, 1000); // }, 1000);
} // }
// //
function changeShowDialog(row: planWorkOrder.planWorkOrderList): void { function changeShowDialog(row: planWorkOrder.planWorkOrderList): void {
@ -650,7 +653,10 @@ function changeShowDialog(row: planWorkOrder.planWorkOrderList): void {
const lower = item.productionLowerLimit; const lower = item.productionLowerLimit;
if (spec) { if (spec) {
if ((spec < upper || spec === upper) && (spec > lower || spec === lower)) { if ((spec < upper || spec === upper) && (spec > lower || spec === lower)) {
drillingCrewoptions.value.push({ label: item.equipmentCode, value: item.id }); drillingCrewoptions.value.push({
label: item.equipmentCode,
value: item.id
});
} }
} }
}); });

@ -271,16 +271,16 @@ const detailColumns: DataTableColumns<Procure.rawProcureList.listType> = [
width: 80 width: 80
}, },
{
title: '数量',
key: 'weight',
width: 80
},
// { // {
// title: '', // title: '',
// key: 'quantity', // key: 'weight',
// width: 80 // width: 80
// }, // },
{
title: '数量',
key: 'quantity',
width: 80
},
{ {
title: '规格型号', title: '规格型号',
key: 'specification', key: 'specification',
@ -619,11 +619,11 @@ const columns: Ref<DataTableColumns<Procure.rawProcureList.columns>> = ref([
key: 'quantity', key: 'quantity',
width: 80 width: 80
}, },
{ // {
title: '计划数量', // title: '',
key: 'totalWeight', // key: 'totalWeight',
width: 80 // width: 80
}, // },
{ {
title: '总价', title: '总价',
key: 'totalPrice', key: 'totalPrice',
@ -645,11 +645,6 @@ const columns: Ref<DataTableColumns<Procure.rawProcureList.columns>> = ref([
// key: 'planDateStart', // key: 'planDateStart',
// width: 180 // width: 180
// }, // },
// {
// title: '',
// key: 'planDateEnd',
// width: 180
// },
{ {
title: '创建日期', title: '创建日期',
key: 'createTime', key: 'createTime',

@ -205,7 +205,7 @@ const columns: Ref<DataTableColumns<feedRecords.TabelList>> = ref([
{ {
title: '投料数量', title: '投料数量',
align: 'center', align: 'center',
key: 'inputWeight', key: 'inputNum',
width: 100 width: 100
}, },
{ {

@ -142,7 +142,8 @@ import { getWmsItemRecpt, executeWmsItemRecpt } from '@/service/api/wms/recpt';
import { selectWmsItemRecptLineList, delWmsItemRecptLine } from '@/service/api/wms/recptLine'; import { selectWmsItemRecptLineList, delWmsItemRecptLine } from '@/service/api/wms/recptLine';
import { useDelBtn, useBackBtn, useBtn } from '@/hooks/common/useBtn'; import { useDelBtn, useBackBtn, useBtn } from '@/hooks/common/useBtn';
import { getlist, getWarehouseAreaList } from '@/service/api/wms/warehouse'; import { getlist, getWarehouseAreaList } from '@/service/api/wms/warehouse';
import { useSocketStore } from '@/store/modules/socket/index';
const socketStore = useSocketStore();
const info = ref<boolean>(false); const info = ref<boolean>(false);
const dataRef = ref<FormInst | null>(null); const dataRef = ref<FormInst | null>(null);
// import { createRequiredFormRule } from '~/src/utils'; // import { createRequiredFormRule } from '~/src/utils';
@ -150,6 +151,7 @@ const dataRef = ref<FormInst | null>(null);
const rules: any = {}; const rules: any = {};
const storageOptions = ref<{ value: string; label: string }[]>([]); const storageOptions = ref<{ value: string; label: string }[]>([]);
const { proxy } = getCurrentInstance() as any; const { proxy } = getCurrentInstance() as any;
const { wms_item_recpt_status, wms_item_recpt_type } = proxy.useDict('wms_item_recpt_status', 'wms_item_recpt_type'); const { wms_item_recpt_status, wms_item_recpt_type } = proxy.useDict('wms_item_recpt_status', 'wms_item_recpt_type');
console.log(wms_item_recpt_type); console.log(wms_item_recpt_type);
@ -359,6 +361,10 @@ const columns: Ref<DataTableColumns<wms.recptLineRawType.columns>> = ref([
key: 'warehouseName', key: 'warehouseName',
width: 180, width: 180,
render: row => { render: row => {
row.warehouseId = options.value[0]?.id;
row.areaId = options.value[0]?.id;
row.locationId = options.value[0]?.pid;
row.areaName = options.value[0]?.pname;
return ( return (
<n-cascader <n-cascader
disabled={info.value} disabled={info.value}
@ -490,6 +496,10 @@ function getWmsItemRecptLineData() {
startLoading(); startLoading();
selectWmsItemRecptLineList({ params: searchForm.value }).then(res => { selectWmsItemRecptLineList({ params: searchForm.value }).then(res => {
data.value = res.rows; data.value = res.rows;
// row.warehouseId = _value;
// row.areaId = item.id;
// row.locationId = item.pid;
// row.areaName = item.pname;
if (!Array.isArray(res.rows)) return; if (!Array.isArray(res.rows)) return;
data.value.forEach(item => { data.value.forEach(item => {
item.quantitySavedTemp = item.quantitySaved; item.quantitySavedTemp = item.quantitySaved;
@ -617,6 +627,8 @@ function getRecptInfo() {
getWmsItemRecpt(route.query.id as string).then(res => { getWmsItemRecpt(route.query.id as string).then(res => {
// console.log(res, res.data.salseDeptId, '11'); // console.log(res, res.data.salseDeptId, '11');
RecptInfo.value = res.data; RecptInfo.value = res.data;
console.log('res.data ==>', res.data);
RecptInfo.value.recptDate = new Date(RecptInfo.value.recptDate as unknown as string).getTime(); RecptInfo.value.recptDate = new Date(RecptInfo.value.recptDate as unknown as string).getTime();
// salesUser(res.data.salseDeptId); // salesUser(res.data.salseDeptId);
}); });
@ -650,20 +662,25 @@ function headSelect(_val, item) {
// RecptInfo.value.salseBy = item.userId; // RecptInfo.value.salseBy = item.userId;
// RecptInfo.value.salseByNick = item.nickName; // RecptInfo.value.salseByNick = item.nickName;
// } // }
function getStorage(val) { async function getStorage(val) {
if (!val) return; if (!val) return;
getWarehouseAreaList(val).then(res => { await getWarehouseAreaList(val).then(res => {
options.value = res.data; options.value = res.data;
}); });
} }
function submitInfo() { function submitInfo() {
dataRef.value?.validate(err => { dataRef.value?.validate(err => {
if (!err) { if (!err) {
console.log('校验通过', data.value);
RecptInfo.value.lineList = data.value; RecptInfo.value.lineList = data.value;
executeWmsItemRecpt(RecptInfo.value).then(res => { executeWmsItemRecpt(RecptInfo.value).then(res => {
// console.log(res); // console.log(res);
if (res.code === 200) { if (res.code === 200) {
socketStore.setMsg(
JSON.stringify({
templateType: 'YL-MB',
printValue: res.data.lineList
})
);
message.success('入库成功'); message.success('入库成功');
router.go(-1); router.go(-1);
} }
@ -673,10 +690,10 @@ function submitInfo() {
// console.log(RecptInfo.value, data.value, '--------'); // console.log(RecptInfo.value, data.value, '--------');
} }
function init() { async function init() {
info.value = Boolean(route.query.info); info.value = Boolean(route.query.info);
getWmsItemRecptLineData(); getWmsItemRecptLineData();
getRecptInfo();
getlist({}).then(res => { getlist({}).then(res => {
if (!Array.isArray(res.data)) return; if (!Array.isArray(res.data)) return;
res.data.forEach(item => { res.data.forEach(item => {
@ -687,7 +704,8 @@ function init() {
}); });
}); });
}); });
getStorage(route.query.warehouseId as string); await getStorage(route.query.warehouseId as string);
getRecptInfo();
getUser(); getUser();
// //
// getDeptTree(); // getDeptTree();

@ -218,6 +218,15 @@ const columns: Ref<DataTableColumns<wms.recptRawType.columns>> = ref([
tooltip: true tooltip: true
} }
}, },
{
title: '创建时间',
key: 'createTime',
align: 'center',
width: 180,
ellipsis: {
tooltip: true
}
},
{ {
title: '单据状态', title: '单据状态',
key: 'status', key: 'status',

Loading…
Cancel
Save