devicesmgt/sgzb-ui/src/views/store/newBuy/newDevices/newDevicesAccept.vue

501 lines
17 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item label="名称" prop="dictName">
<el-input
v-model="queryParams.dictName"
placeholder="请输入名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleNotice"
>通知</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="jumpList"
>采购验收管理</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button>
</el-col> -->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
</el-row>
<el-table v-loading="loading" :data="equipmentList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" type="index" />
<el-table-column label="机具类型名称" align="center" prop="machineTypeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="specificationType" :show-overflow-tooltip="true" />
<el-table-column label="管理模式" align="center" prop="manageType" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<span v-if="scope.row.manageType==0">编码管理</span>
<span v-if="scope.row.manageType==1">数量管理</span>
</template>
</el-table-column>
<el-table-column label="机具厂家" align="center" prop="supplier" :show-overflow-tooltip="true" />
<el-table-column label="采购数量" align="center" prop="purchaseNum" :show-overflow-tooltip="true" />
<el-table-column label="验收数量" align="center" prop="checkNum" :show-overflow-tooltip="true" />
<el-table-column label="是否已具备设备自编号" align="center" prop="dictName" :show-overflow-tooltip="true" />
<el-table-column label="验收图片" align="center" prop="checkUrl" :show-overflow-tooltip="true" />
<el-table-column label="配套资料" align="center" prop="fileName" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" prop="status" width="180">
<template slot-scope="scope">
<span v-if="scope.row.status==0">未验收</span>
<span v-if="scope.row.status==1">已验收</span>
<span v-if="scope.row.status==2">待通知</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="250">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleCheck(scope.row)"
>验收</el-button>
<!-- <el-button
size="mini"
type="text"
icon="el-icon-edit"
>编码管理</el-button> -->
<!-- <el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button> -->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 验收弹窗 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="机具类型名称:" prop="machineTypeName">
<el-input v-model="form.machineTypeName" placeholder="" disabled/>
</el-form-item>
<el-form-item label="规格型号" prop="specificationType">
<el-input v-model="form.specificationType" placeholder="" disabled />
</el-form-item>
<el-form-item label="验收数量" prop="checkNum">
<el-input v-model="form.checkNum" placeholder="" disabled/>
</el-form-item>
<el-form-item label="验收结论" prop="checkResult">
<el-radio v-model="form.checkResult" label="通过">通过</el-radio>
<el-radio v-model="form.checkResult" label="不通过">不通过</el-radio>
</el-form-item>
<el-form-item label="验收通过数量" prop="inputNum">
<el-input-number v-model="form.inputNum" style="width:100%;" controls-position="right" :min="0" />
</el-form-item>
<el-form-item label="验收图片" prop="checkUrl">
<el-input v-model="form.checkUrl" placeholder="图片上传" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 通知弹窗 -->
<el-dialog :title="title" :visible.sync="noticeOpen" width="1000px" append-to-body>
<el-form ref="nform" :model="nform" :rules="nrules" label-width="100px">
<el-form-item label="通知内容:" prop="notice">
<el-input v-model="nform.notice" type="textarea" :autosize="{ minRows: 4, maxRows: 6}" placeholder="请输入通知内容" style="width: 80%;"/>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="noticeUserList" height="500">
<!-- <el-table-column type="selection" width="50" align="center" /> -->
<el-table-column label="序号" align="center" key="userId" prop="userId" />
<el-table-column label="人员名称" align="center" key="userName" prop="userName" :show-overflow-tooltip="true" />
<el-table-column label="所属机构" align="center" key="deptName" prop="deptName" :show-overflow-tooltip="true" />
<el-table-column label="角色" align="center" key="deptName" prop="dept.deptName" :show-overflow-tooltip="true" />
<el-table-column label="联系电话" align="center" key="phonenumber" prop="phonenumber" width="120" />
<el-table-column
label="操作"
align="center"
width="160"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="delUser(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="peopleOpen = true">人员添加</el-button>
<el-button type="primary" @click="configNotice">消息通知</el-button>
</div>
</el-dialog>
<!-- 人员添加 -->
<el-dialog :title="title" :visible.sync="peopleOpen" width="1000px" append-to-body>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionUser" height="450">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" key="userId" prop="userId" />
<el-table-column label="人员名称" align="center" key="userName" prop="userName" :show-overflow-tooltip="true" />
<el-table-column label="所属机构" align="center" key="" prop="" :show-overflow-tooltip="true" />
<el-table-column label="角色" align="center" key="deptName" prop="dept.deptName" :show-overflow-tooltip="true" />
<el-table-column label="联系电话" align="center" key="phonenumber" prop="phonenumber" width="120" />
<!-- <el-table-column
label="操作"
align="center"
width="160"
class-name="small-padding fixed-width"
>
<template slot-scope="scope" v-if="scope.row.userId !== 1">
<el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="addUser(scope.row)"
>添加</el-button>
</template>
</el-table-column> -->
</el-table>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="addUser">添加</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
import { getPurchaseCheckInfo,bmNoticeInfo,updatePurchaseCheckDetails } from "@/api/store/newBuy";
import { getUserByRoleList } from "@/api/system/user";
export default {
name: "Dict",
dicts: ['sys_normal_disable'],
data() {
return {
//任务ID
taskId:'',
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
//人员添加-列表数据
userList:[],
//通知人员数组
noticeUserList:[],
//选择人员
chosenUserList:[],
//任务数据
taskInfo:{},
// 表格数据
equipmentList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 日期范围
dateRange: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
dictName: undefined,
dictType: undefined,
status: undefined
},
// 表单参数
form: {},
// 表单校验
rules: {
checkResult: [
{ required: true, message: "验收结论不能为空", trigger: "blur" }
],
inputNum: [
{ required: true, message: "验收通过数量不能为空", trigger: "blur" }
],
checkUrl: [
{ required: true, message: "验收图片不能为空", trigger: "blur" }
],
},
peopleOpen:false,
noticeOpen:false,
nform:{
notice:''
},
nrules: {
notice: [
{ required: true, message: "通知内容不能为空", trigger: "blur" }
]
},
deptName: undefined,
};
},
created() {
const taskId = this.$route.query && this.$route.query.taskId;
this.taskId = taskId;
console.log(this.taskId)
this.getTaskInfo();
this.getUserList()
},
methods: {
//获取任务详情-列表数据
getTaskInfo(){
this.loading = true;
getPurchaseCheckInfo(this.taskId).then(response => {
this.taskInfo = response.data
this.equipmentList = response.data.checkDetailsList;
this.loading = false;
})
},
// 返回列表页
jumpList(){
const obj = { path: "/store/newBuy/newDevicesList" }
this.$tab.closeOpenPage(obj);
},
/** 查询字典类型列表 */
getList() {
this.loading = true;
listType(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.equipmentList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
machineTypeName: undefined,
specificationType: undefined,
checkNum: undefined,
checkResult: "通过",
inputNum: undefined,
checkUrl: undefined,
};
// this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
getNowTime(){
var today = new Date();
var year = today.getFullYear();//获取年份
var month = today.getMonth() + 1;//获取月份
var day = today.getDate();//获取日期
return year + "-" + month + "-" + day
// console.log(year + "-" + month + "-" + day);
},
//通知按钮
handleNotice(){
this.noticeOpen = true;
// console.log(this.getNowTime())
// var str = ''
// this.equipmentList.forEach(item => {
// str = str+'机具类型:'+ item.machineTypeName +'规格型号K87-AD4/38-36.52-M1-B数量8.000'
// });
this.nform.notice = '各位同事您好,请于'+this.getNowTime()+'进行机具验收。验收单号:'+this.taskInfo.code;
},
/** 查询用户列表--库管员 */
getUserList() {
getUserByRoleList({roleId:'101'}).then(response => {
this.userList = response.data;
}
);
},
// 多选框选中数据
handleSelectionUser(selection) {
console.log(selection)
this.chosenUserList = selection;
},
//添加人员
addUser(){
console.log(this.noticeUserList,"noticeUserList")
console.log(this.chosenUserList,"chosenUserList")
this.noticeUserList = this.chosenUserList;
// this.chosenUserList.forEach((chosen,index)=>{
// this.noticeUserList.unshift(chosen)
// })
// console.log(this.noticeUserList,"noticeUserList")
// console.log(this.chosenUserList,"chosenUserList")
this.peopleOpen = false;
},
delUser(row){
this.noticeUserList.forEach((item,index)=>{
if(item.userId == row.userId){
console.log('del')
this.noticeUserList.splice(index,1)
}
})
},
configNotice(){
console.log(this.nform.notice,'message')
console.log(this.taskInfo.taskId,'taskId')
console.log(this.noticeUserList,'bmNoticeInfoList')
this.noticeUserList.forEach((item,index)=>{
item.noticeUser = item.userId;
item.phone = item.phonenumber;
})
let param = {
message:this.nform.notice,
taskId:this.taskInfo.taskId,
bmNoticeInfoList:this.noticeUserList,
}
bmNoticeInfo(param).then(response=>{
console.log(response)
if(response.code==200){
this.$message({
message: '操作成功',
type: 'success'
})
this.noticeOpen = false
}
})
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.dictId)
this.single = selection.length!=1
this.multiple = !selection.length
},
/** 修改按钮操作 */
handleCheck(row) {
// this.reset();
// const dictId = row.dictId || this.ids
// getType(dictId).then(response => {
console.log(row)
let rowData = row
rowData.checkNum = rowData.purchaseNum;
this.form = rowData;
this.open = true;
this.title = "验收";
// });
},
/** 提交按钮 */
submitForm: function() {
this.$refs["form"].validate(valid => {
if (valid) {
let param = [this.form]
updatePurchaseCheckDetails(param).then(response => {
if(response.code == 200){
this.$message({
message: '操作成功',
type: 'success'
})
this.open = false;
this.getTaskInfo();
}
});
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const dictIds = row.dictId || this.ids;
this.$modal.confirm('是否确认删除该数据项?').then(function() {
return delType(dictIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/dict/type/export', {
...this.queryParams
}, `type_${new Date().getTime()}.xlsx`)
},
/** 刷新缓存按钮操作 */
handleRefreshCache() {
refreshCache().then(() => {
this.$modal.msgSuccess("刷新成功");
this.$store.dispatch('dict/cleanDict');
});
}
}
};
</script>