This commit is contained in:
bb_pan 2025-06-10 17:01:40 +08:00
parent 20206ffb6d
commit 0ee69e0c03
8 changed files with 256 additions and 84 deletions

View File

@ -10,6 +10,15 @@ export function listUser(query) {
})
}
// 查询用户列表-new
export function getUserList(query) {
return request({
url: '/system/user/getList',
method: 'get',
params: query
})
}
// 查询用户详细
export function getUser(userId) {
return request({

View File

@ -24,7 +24,7 @@
:filter-node-method="filterNode"
ref="tree"
node-key="id"
:default-expand-all="false"
:default-expand-all="true"
highlight-current
@node-click="handleNodeClick"
>
@ -518,7 +518,7 @@
<el-form-item label="排序" prop="sortNum">
<el-input
v-model.number="form.sortNum"
type="number" :min="0" @input="(v)=>(form.sortNum=v.replace(/[^\d]/g,''))"
type="number" :min="1" @input="(v)=>(form.sortNum=v.replace(/[^\d]/g,''))"
placeholder="请输入排序"
maxlength="10"
/>
@ -953,8 +953,10 @@ export default {
getList() {
this.loading = true;
getListByMaType(this.queryParams).then((response) => {
this.typeList = response.data.rows;
this.total = response.data.total;
if (response.code === 200 && response.data && response.data.rows) {
this.typeList = response.data.rows
this.total = response.data.total
}
this.loading = false;
});
},
@ -1122,7 +1124,7 @@ export default {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
this.getTreeData();
// this.getTreeData();
});
})
.catch(() => {});
@ -1131,7 +1133,7 @@ export default {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
this.getTreeData();
// this.getTreeData();
});
}
}else {
@ -1139,7 +1141,7 @@ export default {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
this.getTreeData();
// this.getTreeData();
});
}
}
@ -1156,7 +1158,7 @@ export default {
.then(() => {
this.$modal.msgSuccess("删除成功");
this.getList();
this.getTreeData();
// this.getTreeData();
})
.catch(() => {});
},
@ -1235,6 +1237,7 @@ export default {
this.form.itemType = this.level1TempName;
this.form.materialType = this.level2TempName;
this.form.materialName = data.label;
this.form.sortNum = data.number + 1
this.open = true;
this.title = "新增";
} else {

View File

@ -190,15 +190,15 @@
<el-table-column
label="库管员"
align="center"
prop="keeperUserName"
prop="keeperNickName"
show-overflow-tooltip
>
<template slot-scope="scope">
<div v-if="scope.row.keeperUserName == null" style="color: red">
<div v-if="scope.row.keeperNickName == null" style="color: red">
{{ "请绑定" }}
</div>
<div v-else>
{{ scope.row.keeperUserName }}
{{ scope.row.keeperNickName }}
</div>
<!-- <div v-else style="color: red;"></div> -->
</template>

View File

@ -128,30 +128,29 @@
/>
<!-- 验收单弹窗 -->
<el-dialog :title="title" :visible.sync="openPrint" width="1090px" append-to-body>
<el-dialog :visible.sync="openPrint" width="1090px" append-to-body>
<div style="height: 500px; overflow-y: scroll">
<vue-easy-print tableShow ref="remarksPrintRef" class="print" style="padding: 0 5px;">
<div id="checkId">
<div class="title" style="text-align: center;font-weight: 600;font-size: 16px;">
到货验收单
</div>
<div class="info" style="margin-top: 10px; display: flex; flex-wrap: wrap">
<div class="info" style="margin: 10px 20px 0; display: flex; justify-content: space-between; flex-wrap: wrap">
<div
class="item"
style="width: 40%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
style="flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<span>生产厂家供应商{{printData.supplier}}</span>
</div>
<div
class="item"
style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
style="flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<span>到货日期{{printData.arrivalDate}}</span>
</div>
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<div class="item" style="flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<span>单据编号{{printData.code}}</span>
</div>
</div>
<el-table :data="printTableData" class="table" style="margin-top: 20px;width: 1000px;padding-bottom: 1px;" border>
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table :data="printTableData" style="margin-top: 20px;width: 100%;" border>
<el-table-column label="序号" align="center" type="index" row="2" width="60px"/>
<el-table-column label="物资名称" align="center" prop="maTypeName"/>
<el-table-column label="规格型号" align="center" prop="typeName"/>
@ -165,8 +164,42 @@
</el-table-column>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark"/>
</el-table>
</el-table> -->
<table border="1" cellspacing="0" cellpadding="4" style="margin-top: 20px;width: 99%;border-collapse: collapse;">
<thead>
<tr>
<th rowspan="3" style="width:60px;">序号</th>
<th rowspan="3">物资名称</th>
<th rowspan="3">规格型号</th>
<th rowspan="3">单位</th>
<th colspan="4">配送信息</th>
<th rowspan="3">备注</th>
</tr>
<tr>
<th rowspan="2">采购数量</th>
<th rowspan="2">验收结论</th>
<th colspan="2">质保质量</th>
</tr>
<tr>
<th>实收份数</th>
<th>符合要求</th>
</tr>
</thead>
<tbody>
<tr v-for="(row, index) in printTableData" :key="index">
<td align="center">{{ index + 1 }}</td>
<td align="center">{{ row.maTypeName }}</td>
<td align="center">{{ row.typeName }}</td>
<td align="center">{{ row.unitName }}</td>
<td align="center">{{ row.purchaseNum }}</td>
<td align="center">{{ row.checkResult }}</td>
<td align="center">{{ row.fileReceiveNum }}</td>
<td align="center">{{ row.isQualified }}</td>
<td align="center">{{ row.remark }}</td>
</tr>
</tbody>
</table>
<div class="fillIn" style="margin-top: 20px;display: flex;justify-content: space-between;" >
<div class="item" style="width: 33%;display: flex;align-items: center;">
<div style="width: 25%;">供应科</div>
@ -207,7 +240,7 @@
</div>
</el-dialog>
</div>
</template>
@ -423,10 +456,10 @@
padding-bottom: 20px;
font-size: 18px;
}
::v-deep.el-table .fixed-width .el-button--mini {
/* ::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important;
margin-bottom: 10px;
}
} */
//css
::v-deep.disabled {
.el-upload--picture-card {

View File

@ -52,7 +52,7 @@
<el-radio-button label="day">选择某天</el-radio-button>
<el-radio-button label="month">选择月份</el-radio-button>
</el-radio-group>
<div style="height: 40px; flex: 1;">
<!-- <div style="height: 40px; flex: 1;"> -->
<el-date-picker
v-if="dateType === 'day'"
v-model="maForm.productionTime"
@ -74,7 +74,7 @@
@change="productionMonthChange"
:picker-options="pickerOptionsForProductionMonth"
></el-date-picker>
</div>
<!-- </div> -->
</div>
</el-form-item>
<el-form-item label="税率" prop="taxRate">
@ -966,6 +966,12 @@ export default {
/** 保存按钮操作 */
handleSave() {
if (this.equipmentList.length > 0) {
//
const noReportIndex = this.equipmentList.findIndex(item => !item.bmFileInfos || item.bmFileInfos.length === 0)
if (noReportIndex > -1) {
this.$modal.msgError(`${noReportIndex + 1}行未上传报告,请补充后再提交!`)
return
}
this.$refs['maForm'].validate(valid => {
if (valid) {
this.maForm.taskId = this.taskId

View File

@ -115,10 +115,14 @@
v-if="scope.row.taskStatusName == '未完成'"
@click="handleNotice(scope.row)" v-hasPermi="['purchase:person:notice']"
>通知</el-button>
<!-- <el-button size="mini" type="warning"
v-if="scope.row.taskStatusName == '未完成'"
<el-button size="mini" type="warning"
v-if="showCheckForm(scope.row)"
@click="handlePrint(scope.row)"
>验收单</el-button> -->
>验收单</el-button>
<el-button size="mini" type="warning"
v-if="showInboundForm(scope.row)"
@click="handlePrint2(scope.row)"
>入库单</el-button>
<el-button size="mini" type="danger"
v-if="scope.row.taskStatusName == '未完成'" v-hasPermi="['purchase:info:remove']"
@click="handleDeletePurchase(scope.row)"
@ -136,30 +140,29 @@
/>
<!-- 验收单弹窗 -->
<el-dialog :title="title" :visible.sync="openPrint" width="1090px" append-to-body>
<el-dialog :visible.sync="openPrint" width="1090px" append-to-body>
<div style="height: 500px; overflow-y: scroll">
<!-- <vue-easy-print tableShow ref="remarksPrintRef" class="print"> -->
<vue-easy-print tableShow ref="remarksPrintRef" class="print">
<div id="checkId">
<div class="title" style="text-align: center;font-weight: 600;font-size: 16px;">
机具设备到货验收单
到货验收单
</div>
<div class="info" style="margin-top: 10px; display: flex; flex-wrap: wrap">
<div class="item" style="width: 100%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<span>单据编号{{printData.code}}</span>
</div>
<div class="info" style="margin: 10px 20px 0; display: flex; justify-content: space-between;">
<div
class="item"
style="width: 50%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
style="flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<span>生产厂家供应商{{printData.supplier}}</span>
</div>
<div
class="item"
style="width: 50%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
style="flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<span>到货日期{{printData.arrivalDate}}</span>
</div>
<div class="item" style="flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<span>单据编号{{printData.code}}</span>
</div>
</div>
<el-table :data="printTableData" class="table" style="margin-top: 20px;width: 1000px;" border>
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table :data="printTableData" class="table" style="margin-top: 20px;width: 1000px;" border>
<el-table-column label="序号" align="center" type="index" row="2" width="60px"/>
<el-table-column label="物资名称" align="center" prop="maTypeName"/>
<el-table-column label="规格型号" align="center" prop="typeName"/>
@ -173,8 +176,42 @@
</el-table-column>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark"/>
</el-table>
</el-table> -->
<table border="1" cellspacing="0" cellpadding="4" style="margin-top: 20px;width: 99%;border-collapse: collapse;">
<thead>
<tr>
<th rowspan="3" style="width:60px;">序号</th>
<th rowspan="3">物资名称</th>
<th rowspan="3">规格型号</th>
<th rowspan="3">单位</th>
<th colspan="4">配送信息</th>
<th rowspan="3">备注</th>
</tr>
<tr>
<th rowspan="2">采购数量</th>
<th rowspan="2">验收结论</th>
<th colspan="2">质保质量</th>
</tr>
<tr>
<th>实收份数</th>
<th>符合要求</th>
</tr>
</thead>
<tbody>
<tr v-for="(row, index) in printTableData" :key="index">
<td align="center">{{ index + 1 }}</td>
<td align="center">{{ row.maTypeName }}</td>
<td align="center">{{ row.typeName }}</td>
<td align="center">{{ row.unitName }}</td>
<td align="center">{{ row.purchaseNum }}</td>
<td align="center">{{ row.checkResult }}</td>
<td align="center">{{ row.fileReceiveNum }}</td>
<td align="center">{{ row.isQualified }}</td>
<td align="center">{{ row.remark }}</td>
</tr>
</tbody>
</table>
<div class="fillIn" style="margin-top: 20px;display: flex;justify-content: space-between;" >
<div class="item" style="width: 33%;display: flex;align-items: center;">
<div style="width: 25%;">供应科</div>
@ -206,7 +243,7 @@
</div>
</div>
</div>
<!-- </vue-easy-print> -->
</vue-easy-print>
</div>
<div slot="footer" class="dialog-footer" style="text-align: center">
@ -215,6 +252,75 @@
</div>
</el-dialog>
<!-- 验收单弹窗 -->
<el-dialog :visible.sync="openPrint2" width="800px" append-to-body>
<div style="height: 500px; overflow-y: scroll">
<vue-easy-print tableShow ref="remarksPrintRef2" class="print" style="margin: 0 20px">
<div style="text-align: center; font-weight: 600; font-size: 30px">新购入库单</div>
<div style="margin-top: 10px; display: flex; flex-wrap: wrap; justify-content: flex-end; width: 95%">
<!-- <div style="flex-shrink: 0; margin-bottom: 5px; font-size: 14px">
<span>单据编号{{ printData.code }}</span>
</div> -->
<!-- <div class="item" style=" flex-shrink: 0; margin-bottom: 5px; font-size: 14px;">
<span>生产厂家供应商{{printData.supplierName}}</span>
</div> -->
<div class="item" style="flex-shrink: 0; margin-bottom: 5px; font-size: 14px">
<span>单据编号{{ printData.code }}</span>
</div>
</div>
<table border="1" cellspacing="0" cellpadding="4" style="margin-top: 20px; width: 99%; border-collapse: collapse;">
<thead>
<tr>
<th style="width: 60px;">序号</th>
<th>物资名称</th>
<th>规格型号</th>
<th>单位</th>
<th>入库数量</th>
<th>入库时间</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr v-for="(row, index) in printTableData" :key="index">
<td align="center">{{ index + 1 }}</td>
<td align="center">{{ row.maTypeName }}</td>
<td align="center">{{ row.typeName }}</td>
<td align="center">{{ row.unitName }}</td>
<td align="center">{{ row.inputNum }}</td>
<td align="center">{{ row.inputTime }}</td>
<td align="center">{{ row.remark }}</td>
</tr>
</tbody>
</table>
<div class="fillIn" style="margin-top: 20px; display: flex; justify-content: space-between">
<div class="item" style="width: 33%">
<div>
<span>审核{{ printData.reviewer }}</span>
</div>
</div>
<!-- <div class="item" style="width: 33%">
<div>
<span>生产技术科{{ printData.productionTechDept }}</span>
</div>
</div> -->
<div class="item" style="width: 33%">
<div>
<span>库管员{{ printData.warehouseTeam }}</span>
</div>
</div>
</div>
</vue-easy-print>
</div>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="print2"> </el-button>
<el-button @click="openPrint2 = false"> </el-button>
</div>
</el-dialog>
<!-- 通知弹窗 -->
<el-dialog :title="title" :visible.sync="showPeople" width="800px" append-to-body @close="cancel">
<el-row :gutter="24">
@ -366,6 +472,7 @@ export default {
printTableData: [],
//
supplierStr: "",
openPrint2: false,
};
},
created() {
@ -400,6 +507,14 @@ export default {
this.loading = false;
});
},
//
showCheckForm(row) {
return [3, 4, 13, 14, 19, 21, 22].includes(Number(row.taskStatus))
},
//
showInboundForm(row) {
return [19, 21, 22].includes(Number(row.taskStatus))
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
@ -615,16 +730,25 @@ export default {
this.openPrint = true;
this.title = "机具设备到货验收单";
},
handlePrint2(row) {
// this.query.taskId = row.taskId
this.getPrintTable(row.taskId)
this.openPrint2 = true
this.title = "新购入库单"
},
//
print() {
// this.$refs.remarksPrintRef.print();
printJS({
printable: 'checkId',
type: 'html',
targetStyles: ['*'],
maxWidth:'1400'
//
});
this.$refs.remarksPrintRef.print()
// printJS({
// printable: 'checkId',
// type: 'html',
// targetStyles: ['*'],
// maxWidth:'1400'
// //
// });
},
print2() {
this.$refs.remarksPrintRef2.print()
},
/** 删除按钮操作 */

View File

@ -152,43 +152,39 @@
<span>单据编号{{ printData.code }}</span>
</div>
</div>
<el-table :data="printTableData" class="table" border style="margin-top: 20px; padding: 1px">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table :data="printTableData" class="table" border style="margin-top: 20px; padding: 1px">
<el-table-column label="序号" align="center" type="index" row="2" />
<el-table-column label="物资名称" align="center" prop="maTypeName" />
<el-table-column label="规格型号" align="center" prop="typeName" />
<el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="入库数量" align="center" prop="inputNum" />
<el-table-column label="入库时间" align="center" prop="inputTime" />
<!-- <el-table-column label="配送信息" align="center">
<el-table-column label="采购数量" align="center" prop="purchaseNum"
/>
<el-table-column
label="验收结论"
align="center"
prop="checkResult"
/>
<el-table-column label="质保质量" align="center">
<el-table-column
label="实收份数"
align="center"
prop="checkNum"
/>
<el-table-column
label="符合要求"
align="center"
/>
</el-table-column>
</el-table-column> -->
<el-table-column label="备注" align="center" prop="remark" />
<!-- <el-table-column-->
<!-- label="合格证及技术资料"-->
<!-- align="center"-->
<!-- prop=""-->
<!-- />-->
<!-- <el-table-column label="包装" align="center" prop="" />-->
</el-table>
</el-table> -->
<table border="1" cellspacing="0" cellpadding="4" style="margin-top: 20px; width: 99%; border-collapse: collapse;">
<thead>
<tr>
<th style="width: 60px;">序号</th>
<th>物资名称</th>
<th>规格型号</th>
<th>单位</th>
<th>入库数量</th>
<th>入库时间</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr v-for="(row, index) in printTableData" :key="index">
<td align="center">{{ index + 1 }}</td>
<td align="center">{{ row.maTypeName }}</td>
<td align="center">{{ row.typeName }}</td>
<td align="center">{{ row.unitName }}</td>
<td align="center">{{ row.inputNum }}</td>
<td align="center">{{ row.inputTime }}</td>
<td align="center">{{ row.remark }}</td>
</tr>
</tbody>
</table>
<div class="fillIn" style="margin-top: 20px; display: flex; justify-content: space-between">
<div class="item" style="width: 33%">

View File

@ -318,7 +318,7 @@
<script>
import {
listUser,
getUserList,
getUser,
delUser,
addUser,
@ -490,9 +490,10 @@ export default {
/** 查询用户列表 */
getList() {
this.loading = true
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.userList = response.rows
this.total = response.total
getUserList(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
console.log('🚀 ~ getUserList ~ response:', response)
this.userList = response.data.rows
this.total = response.data.total
this.loading = false
}
)