feat:领料管理添加子数据展示

This commit is contained in:
jackal 2024-04-17 13:51:05 +08:00
parent 910e64ea51
commit edbc58d08d
3 changed files with 1011 additions and 975 deletions

View File

@ -1,12 +1,19 @@
<template>
<div class="app-container" id="receiveExamine">
<el-row :gutter="10" class="mb8">
<h3>{{ queryParams.applyFor }}提交的领料申请</h3>
<div>领料单号{{ queryParams.code }}</div>
<h3>{{ queryParams.applyFor }}提交的领料申请</h3>
<div>领料单号{{ queryParams.code }}</div>
</el-row>
<el-row :gutter="24" class="mb8">
<el-col :span="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="领料类型" prop="leaseTypeName">
<el-input
v-model="queryParams.leaseTypeName"
@ -50,63 +57,132 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-back"
size="mini"
@click="handleBack"
>领料管理</el-button>
<el-button type="success" plain icon="el-icon-back" size="mini" @click="handleBack">领料管理</el-button>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row :gutter="24" class="mb8">
<el-col :span="18">
<el-table v-loading="loading" :data="queryParams.leaseApplyDetails" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table
v-loading="loading"
:data="queryParams.leaseApplyDetails"
@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="typeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="typeModelName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column
label="类型名称"
align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column type="expand">
<template slot-scope="scope">
<div class="nested-table-container">
<el-table :data="scope.row.maTypeDetails" style="width: 100%">
<!-- 子表格的列 -->
<el-table-column label="序号" align="center" type="index" />
<el-table-column
label="类型名称"
align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="规格型号"
align="center"
prop="typeModelName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="单位"
align="center"
prop="unitName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="预领数量"
align="center"
prop="partNum"
:show-overflow-tooltip="true"
/>
</el-table>
</div>
</template>
</el-table-column>
<el-table-column
label="规格型号"
align="center"
prop="typeModelName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="计量单位"
align="center"
prop="unitName"
:show-overflow-tooltip="true"
/>
<el-table-column label="当前库存" align="center" prop="num" :show-overflow-tooltip="true" />
<el-table-column label="预领数量" align="center" prop="preNum" :show-overflow-tooltip="true" />
<el-table-column label="申请人" align="center" prop="applyFor" :show-overflow-tooltip="true" />
<el-table-column label="申请时间" align="center" prop="updateTimes" :show-overflow-tooltip="true" />
<el-table-column label="任务状态" align="center" prop="taskName" :show-overflow-tooltip="true" />
<el-table-column
label="申请人"
align="center"
prop="applyFor"
:show-overflow-tooltip="true"
/>
<el-table-column
label="申请时间"
align="center"
prop="updateTimes"
:show-overflow-tooltip="true"
/>
<el-table-column
label="任务状态"
align="center"
prop="taskName"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column label="审批结果 " align="center" prop="dictName" :show-overflow-tooltip="true" />-->
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['store:labelType:edit']"-->
<!-- >编辑</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['store:labelType:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['store:labelType:edit']"-->
<!-- >编辑</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['store:labelType:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
</el-col>
<el-col :span="6">
<el-timeline>
<el-timeline-item color="#0bbd87" icon="el-icon-check" placement="top">
<el-timeline-item color="#0bbd87" icon="el-icon-check" placement="top">
<el-card>
<p class="title">提交审批</p>
<p class="author">申请人{{queryParams.applyFor}}</p>
<p class="time">申请时间{{queryParams.updateTimes}}</p>
</el-card>
</el-timeline-item>
<el-timeline-item v-for="(v,i) in flowPath" :type="v.type" :color="v.color" :icon="v.icon" :key="i" placement="top">
<el-timeline-item
v-for="(v,i) in flowPath"
:type="v.type"
:color="v.color"
:icon="v.icon"
:key="i"
placement="top"
>
<el-card>
<p class="title">{{v.name}}</p>
<p class="author" v-if="queryParams[v.authorKey]">审核人{{queryParams[v.authorKey]}}</p>
@ -114,52 +190,105 @@
<p class="remark" v-if="queryParams[v.remarkKey]">审核意见{{ queryParams[v.remarkKey] }}</p>
</el-card>
</el-timeline-item>
</el-timeline>
</el-col>
</el-row>
<div slot="footer" class="dialog-footer" style="text-align: right;margin-right: 200px;" v-if="queryParams.taskStatus<33&&!this.isView">
<div
slot="footer"
class="dialog-footer"
style="text-align: right;margin-right: 200px;"
v-if="queryParams.taskStatus<33&&!this.isView"
>
<el-button type="primary" @click="agree">同意</el-button>
<el-button @click="refuse">驳回</el-button>
</div>
<div slot="footer" class="dialog-footer" style="text-align: right;margin-right: 200px;" v-if="queryParams.taskStatus==117&&!this.isView">
<div
slot="footer"
class="dialog-footer"
style="text-align: right;margin-right: 200px;"
v-if="queryParams.taskStatus==117&&!this.isView"
>
<el-button type="primary" @click="confirm">确认</el-button>
</div>
<!-- 同意 -->
<el-dialog title="审核意见" :visible.sync="examineVisible" width="600px" :close-on-click-modal="false">
<el-input placeholder="请输入审核意见" type="textarea" maxlength="200" :autosize="{ minRows: 4, maxRows: 6}" v-model="queryParams.companyAuditRemarks"></el-input>
<el-dialog
title="审核意见"
:visible.sync="examineVisible"
width="600px"
:close-on-click-modal="false"
>
<el-input
placeholder="请输入审核意见"
type="textarea"
maxlength="200"
:autosize="{ minRows: 4, maxRows: 6}"
v-model="queryParams.companyAuditRemarks"
></el-input>
<div slot="footer" class="dialog-footer">
<el-button @click="examineVisible=false"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(9)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:fgs']"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(1)" v-if="queryParams.taskStatus==32" v-hasPermi="['receive:examine:nbs']"> </el-button>
<el-button
type="primary"
@click="subAuditLeaseByCompany(9)"
v-if="queryParams.taskStatus==31"
v-hasPermi="['receive:examine:fgs']"
> </el-button>
<el-button
type="primary"
@click="subAuditLeaseByCompany(1)"
v-if="queryParams.taskStatus==32"
v-hasPermi="['receive:examine:nbs']"
> </el-button>
</div>
</el-dialog>
<!-- 驳回 -->
<el-dialog title="审核意见" :visible.sync="refuseVisible" width="600px" :close-on-click-modal="false">
<el-input placeholder="请输入审核意见" type="textarea" maxlength="200" :autosize="{ minRows: 4, maxRows: 6}" v-model="queryParams.companyAuditRemarks"></el-input>
<el-dialog
title="审核意见"
:visible.sync="refuseVisible"
width="600px"
:close-on-click-modal="false"
>
<el-input
placeholder="请输入审核意见"
type="textarea"
maxlength="200"
:autosize="{ minRows: 4, maxRows: 6}"
v-model="queryParams.companyAuditRemarks"
></el-input>
<div slot="footer" class="dialog-footer">
<el-button @click="refuseVisible=false"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(10)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:fgs']"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(2)" v-if="queryParams.taskStatus==32" v-hasPermi="['receive:examine:nbs']"> </el-button>
<el-button
type="primary"
@click="refuseAuditLeaseByCompany(10)"
v-if="queryParams.taskStatus==31"
v-hasPermi="['receive:examine:fgs']"
> </el-button>
<el-button
type="primary"
@click="refuseAuditLeaseByCompany(2)"
v-if="queryParams.taskStatus==32"
v-hasPermi="['receive:examine:nbs']"
> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
import { auditLeaseByCompanyCq, getLeaseListAllCq,rejectLeaseByCompanyCq,updateLeaseTaskStatusConfirmByCq } from '@/api/claimAndRefund/receive'
import {mapState} from 'vuex'
import { listType, getType, delType, addType, updateType, refreshCache } from '@/api/system/dict/type'
import {
auditLeaseByCompanyCq,
getLeaseListAllCq,
rejectLeaseByCompanyCq,
updateLeaseTaskStatusConfirmByCq,
} from '@/api/claimAndRefund/receive'
import { mapState } from 'vuex'
export default {
name: "ReceiveExamine",
name: 'ReceiveExamine',
data() {
return {
flowPath:[
flowPath: [
// {
// id:30,
// name:'',
@ -168,28 +297,30 @@ export default {
// timeKey:'companyAuditTime'
// },
{
id:31,
name:'机具分公司审核',
remarkKey:'deptAuditRemark',
authorKey:'deptAuditBy',
timeKey:'deptAuditTime'
},{
id:32,
name:'施工部审核',
remarkKey:'directAuditRemark',
authorKey:'directAuditBy',
timeKey:'directAuditTime'
},{
id:117,
name:'机具分公司确认',
remarkKey:'directAuditRemark',
authorKey:'directAuditBy',
timeKey:'directAuditTime'
}
id: 31,
name: '机具分公司审核',
remarkKey: 'deptAuditRemark',
authorKey: 'deptAuditBy',
timeKey: 'deptAuditTime',
},
{
id: 32,
name: '施工部审核',
remarkKey: 'directAuditRemark',
authorKey: 'directAuditBy',
timeKey: 'directAuditTime',
},
{
id: 117,
name: '机具分公司确认',
remarkKey: 'directAuditRemark',
authorKey: 'directAuditBy',
timeKey: 'directAuditTime',
},
],
isView:false,
examineVisible:false,
refuseVisible:false,
isView: false,
examineVisible: false,
refuseVisible: false,
//
loading: false,
//
@ -205,192 +336,191 @@ export default {
//
typeList: [],
//
title: "",
title: '',
//
open: false,
//
dateRange: [],
//
queryParams: {
leaseApplyInfo:{
},
leaseApplyDetails:[],
companyAuditRemarks:''
leaseApplyInfo: {},
leaseApplyDetails: [],
companyAuditRemarks: '',
},
//
form: {},
//
rules: {
dictName: [
{ required: true, message: "字典名称不能为空", trigger: "blur" }
],
dictType: [
{ required: true, message: "字典类型不能为空", trigger: "blur" }
]
dictName: [{ required: true, message: '字典名称不能为空', trigger: 'blur' }],
dictType: [{ required: true, message: '字典类型不能为空', trigger: 'blur' }],
},
peopleOpen:false,
noticeOpen:false,
nform:{
notice:''
peopleOpen: false,
noticeOpen: false,
nform: {
notice: '',
},
nrules: {
notice: [
{ required: true, message: "通知内容不能为空", trigger: "blur" }
]
notice: [{ required: true, message: '通知内容不能为空', trigger: 'blur' }],
},
deptName: undefined,
activities: [{
content: '小洁发起申请',
timestamp: '2018-04-15'
}, {
content: '分公司审批',
timestamp: '2018-04-13'
}, {
content: '部门审批',
timestamp: '2018-04-11'
}],
};
activities: [
{
content: '小洁发起申请',
timestamp: '2018-04-15',
},
{
content: '分公司审批',
timestamp: '2018-04-13',
},
{
content: '部门审批',
timestamp: '2018-04-11',
},
],
}
},
computed:{
...mapState(['user'])
computed: {
...mapState(['user']),
},
created() {
let taskId = this.$route.query.taskId
let isView = this.$route.query.isView
this.isView = false
if(isView){
if (isView) {
this.isView = true
}
// console.log(isView)
if(taskId){
if (taskId) {
this.getData(taskId)
}
},
methods: {
agree(){
agree() {
this.examineVisible = true
this.queryParams.companyAuditRemarks = '同意'
},
//
async subAuditLeaseByCompany(type){
async subAuditLeaseByCompany(type) {
// console.log()
const params = JSON.parse(JSON.stringify(this.queryParams))
if(params.taskStatus==31){
if (params.taskStatus == 31) {
params.taskStatus = 32
}else if(params.taskStatus==32){
params.taskStatus=117
} else if (params.taskStatus == 32) {
params.taskStatus = 117
}
params.leaseApplyInfoList.forEach(v => {
// console.log(v)
this.$set(v,'companyAuditRemark',params.companyAuditRemarks)
this.$set(v,'companyAuditBy',this.user.id)
this.$set(v,'examineStatusId',Number(params.examineStatusId))
this.$set(v,'status',type)
this.$set(v, 'companyAuditRemark', params.companyAuditRemarks)
this.$set(v, 'companyAuditBy', this.user.id)
this.$set(v, 'examineStatusId', Number(params.examineStatusId))
this.$set(v, 'status', type)
})
params.updateTime = params.updateTimes
params.createTime = params.createTimes
// console.log(params)
const res = await auditLeaseByCompanyCq(params)
if(res.code == 200){
if (res.code == 200) {
this.examineVisible = false
this.$tab.closeOpenPage({ path: "/claimAndRefund/receiveByCq/receiveManage"});
this.$tab.closeOpenPage({
path: '/claimAndRefund/receiveByCq/receiveManage',
})
}
// console.log('subAuditLeaseByCompany ==================',res)
},
//
confirm(){
const taskData = JSON.parse(JSON.stringify(this.queryParams))
// console.log(taskData)
let param = {
taskId:taskData.taskId,
taskStatus:33
}
updateLeaseTaskStatusConfirmByCq(param).then(response => {
this.$modal.msgSuccess("操作成功");
this.getData(taskData.taskId)
});
},
//
confirm() {
const taskData = JSON.parse(JSON.stringify(this.queryParams))
// console.log(taskData)
let param = {
taskId: taskData.taskId,
taskStatus: 33,
}
updateLeaseTaskStatusConfirmByCq(param).then(response => {
this.$modal.msgSuccess('操作成功')
this.getData(taskData.taskId)
})
},
//
refuse(){
refuse() {
this.refuseVisible = true
this.queryParams.companyAuditRemarks = '驳回'
},
//
async refuseAuditLeaseByCompany(type){
async refuseAuditLeaseByCompany(type) {
const params = JSON.parse(JSON.stringify(this.queryParams))
if(params.taskStatus==31){
params.taskStatus=99;
params.examineStatusId=99
if (params.taskStatus == 31) {
params.taskStatus = 99
params.examineStatusId = 99
}
if(params.taskStatus==32){
params.taskStatus=100;
params.examineStatusId=100
if (params.taskStatus == 32) {
params.taskStatus = 100
params.examineStatusId = 100
}
params.updateTime = params.updateTimes
params.createTime = params.createTimes
params.leaseApplyInfoList.forEach(v => {
this.$set(v,'companyAuditRemark',params.companyAuditRemarks)
this.$set(v,'companyAuditBy',this.user.id)
this.$set(v,'examineStatusId',Number(params.examineStatusId))
this.$set(v,'status',type)
this.$set(v, 'companyAuditRemark', params.companyAuditRemarks)
this.$set(v, 'companyAuditBy', this.user.id)
this.$set(v, 'examineStatusId', Number(params.examineStatusId))
this.$set(v, 'status', type)
})
// console.log(params)
const res = await rejectLeaseByCompanyCq(params)
if(res.code == 200){
if (res.code == 200) {
this.examineVisible = false
this.$tab.closeOpenPage({ path: "/claimAndRefund/receiveByCq/receiveManage"});
this.$tab.closeOpenPage({
path: '/claimAndRefund/receiveByCq/receiveManage',
})
}
// console.log('subAuditLeaseByCompany ==================',res)
},
/** 修改按钮操作 */
handleBack(row) {
this.$tab.closeOpenPage({ path: "/claimAndRefund/receiveByCq/receiveManage"});
this.$tab.closeOpenPage({
path: '/claimAndRefund/receiveByCq/receiveManage',
})
},
/** 查询 */
async getData(taskId) {
const res = await getLeaseListAllCq({taskId})
this.queryParams = {...this.queryParams,...res.rows[0]}
this.$set(this.queryParams,'leaseApplyInfo',this.queryParams.leaseApplyInfoList[0])
const res = await getLeaseListAllCq({ taskId })
this.queryParams = { ...this.queryParams, ...res.rows[0] }
this.$set(this.queryParams, 'leaseApplyInfo', this.queryParams.leaseApplyInfoList[0])
this.queryParams.leaseApplyDetails.forEach(v => {
this.$set(v,'applyFor',this.queryParams.applyFor)
this.$set(v,'updateTimes',this.queryParams.updateTimes)
this.$set(v,'taskName',this.queryParams.taskName)
this.$set(v,'createTime',this.queryParams.createTimes)
this.$set(v,'updateTime',this.queryParams.updateTimes)
this.$set(v, 'applyFor', this.queryParams.applyFor)
this.$set(v, 'updateTimes', this.queryParams.updateTimes)
this.$set(v, 'taskName', this.queryParams.taskName)
this.$set(v, 'createTime', this.queryParams.createTimes)
this.$set(v, 'updateTime', this.queryParams.updateTimes)
})
if(this.queryParams.leaseType=='0'){
this.$set(this.queryParams,'leaseTypeName','工程租赁')
}else if(this.queryParams.leaseType=='1'){
this.$set(this.queryParams,'leaseTypeName','长期租赁')
}else{
this.$set(this.queryParams,'leaseTypeName','')
if (this.queryParams.leaseType == '0') {
this.$set(this.queryParams, 'leaseTypeName', '工程租赁')
} else if (this.queryParams.leaseType == '1') {
this.$set(this.queryParams, 'leaseTypeName', '长期租赁')
} else {
this.$set(this.queryParams, 'leaseTypeName', '')
}
// console.log(this.queryParams.examineStatusId)
for (let i=0; i < this.flowPath.length; i++ ){
if(this.flowPath[i].id < this.queryParams.examineStatusId){
for (let i = 0; i < this.flowPath.length; i++) {
if (this.flowPath[i].id < this.queryParams.examineStatusId) {
this.flowPath[i].color = '#0bbd87'
this.flowPath[i].icon = 'el-icon-check'
}else{
} else {
this.flowPath[i].remarkKey = ''
}
if(this.flowPath[i].id == this.queryParams.examineStatusId){
if (this.flowPath[i].id == this.queryParams.examineStatusId) {
this.flowPath[i].type = 'primary'
this.flowPath[i].color = "#1890ff"
this.flowPath[i].color = '#1890ff'
this.flowPath[i].icon = 'el-icon-more'
break
}
}
if(this.queryParams.examineStatusId==33){
if (this.queryParams.examineStatusId == 33) {
this.flowPath[2].color = '#0bbd87'
this.flowPath[2].icon = 'el-icon-check'
}
// console.log(this.flowPath)
if(this.queryParams.examineStatusId==98){
if (this.queryParams.examineStatusId == 98) {
this.flowPath[0].color = 'red'
this.flowPath[0].icon = 'el-icon-close'
this.flowPath[1].color = ''
@ -399,21 +529,21 @@ export default {
this.flowPath[2].color = ''
this.flowPath[2].icon = ''
}
if(this.queryParams.examineStatusId==99){
if (this.queryParams.examineStatusId == 99) {
this.flowPath[1].color = 'red'
this.flowPath[1].icon = 'el-icon-close'
this.flowPath[2].color = ''
this.flowPath[2].icon = ''
}
if(this.queryParams.examineStatusId==100){
if (this.queryParams.examineStatusId == 100) {
this.flowPath[2].color = 'red'
this.flowPath[2].icon = 'el-icon-close'
}
},
//
cancel() {
this.open = false;
this.reset();
this.open = false
this.reset()
},
//
reset() {
@ -421,115 +551,123 @@ export default {
dictId: undefined,
dictName: undefined,
dictType: undefined,
status: "0",
remark: undefined
};
this.resetForm("form");
status: '0',
remark: undefined,
}
this.resetForm('form')
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
this.dateRange = []
this.resetForm('queryForm')
this.handleQuery()
},
handleNotice(){
this.noticeOpen = true;
handleNotice() {
this.noticeOpen = true
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加字典类型";
this.reset()
this.open = true
this.title = '添加字典类型'
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.dictId)
this.single = selection.length!=1
this.single = selection.length != 1
this.multiple = !selection.length
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.reset()
const dictId = row.dictId || this.ids
getType(dictId).then(response => {
this.form = response.data;
this.open = true;
this.title = "验收";
});
this.form = response.data
this.open = true
this.title = '验收'
})
},
/** 提交按钮 */
submitForm: function() {
this.$refs["form"].validate(valid => {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.dictId != undefined) {
updateType(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
this.$modal.msgSuccess('修改成功')
this.open = false
this.getList()
})
} else {
addType(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
this.$modal.msgSuccess('新增成功')
this.open = false
this.getList()
})
}
}
});
})
},
/** 删除按钮操作 */
handleDelete(row) {
const dictIds = row.dictId || this.ids;
this.$modal.confirm('是否确认删除该数据项?').then(function() {
return delType(dictIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
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`)
this.download(
'system/dict/type/export',
{
...this.queryParams,
},
`type_${new Date().getTime()}.xlsx`
)
},
/** 刷新缓存按钮操作 */
handleRefreshCache() {
refreshCache().then(() => {
this.$modal.msgSuccess("刷新成功");
this.$store.dispatch('dict/cleanDict');
});
}
}
};
this.$modal.msgSuccess('刷新成功')
this.$store.dispatch('dict/cleanDict')
})
},
},
}
</script>
<style lang="scss" scoped>
::v-deep .el-card__body{
padding: 10px !important;
p{
margin: 0 !important;
}
.title{
color: #848484;
font-weight: 700;
}
.author{
font-size: 13px;
margin-top: 5px;
}
.time{
font-size: 12px;
}
.remark{
margin-top: 10px;
word-break: break-all;
font-size: 13px;
}
::v-deep .el-card__body {
padding: 10px !important;
p {
margin: 0 !important;
}
.title {
color: #848484;
font-weight: 700;
}
.author {
font-size: 13px;
margin-top: 5px;
}
.time {
font-size: 12px;
}
.remark {
margin-top: 10px;
word-break: break-all;
font-size: 13px;
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,15 @@
"use strict";
const path = require("path");
'use strict'
const path = require('path')
function resolve(dir) {
return path.join(__dirname, dir);
return path.join(__dirname, dir)
}
const CompressionPlugin = require("compression-webpack-plugin");
const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || "施工装备管理系统"; // 网页标题
const name = process.env.VUE_APP_TITLE || '施工装备管理系统' // 网页标题
const port = process.env.port || process.env.npm_config_port || 80; // 端口
const port = process.env.port || process.env.npm_config_port || 80 // 端口
// vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
@ -18,18 +18,18 @@ module.exports = {
// 部署生产环境和开发环境下的URL。
// 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
publicPath: process.env.NODE_ENV === "production" ? "/" : "/", ///gl/
publicPath: process.env.NODE_ENV === 'production' ? '/' : '/', ///gl/
// 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist
outputDir: "dist",
outputDir: 'dist',
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
assetsDir: "static",
assetsDir: 'static',
// 是否开启eslint保存检测有效值ture | false | 'error'
lintOnSave: process.env.NODE_ENV === "development",
lintOnSave: process.env.NODE_ENV === 'development',
// 如果你不需要生产环境的 source map可以将其设置为 false 以加速生产环境构建。
productionSourceMap: false,
// webpack-dev-server 相关配置
devServer: {
host: "0.0.0.0",
host: '0.0.0.0',
port: port,
open: true,
proxy: {
@ -42,10 +42,10 @@ module.exports = {
// target: `https://test-cc.zhgkxt.com`,//线上环境-南网
// target: `https://z.csgmall.com.cn`,
// target: `http://10.40.92.8:8080`, //超
target: `http://10.40.92.8:8080`, //超
// target: `http://10.40.92.253:8080`,//韩
// target: `http://10.40.92.209:8080`,//川/
target: `http://10.40.92.153:8080`, //帅
// target: `http://10.40.92.153:8080`, //帅
// target: `http://10.40.92.14:8080`, //福
//******** 注意事项 ********* */
@ -61,7 +61,7 @@ module.exports = {
changeOrigin: true,
pathRewrite: {
["^" + process.env.VUE_APP_BASE_API]: "",
['^' + process.env.VUE_APP_BASE_API]: '',
},
},
},
@ -70,7 +70,7 @@ module.exports = {
css: {
loaderOptions: {
sass: {
sassOptions: { outputStyle: "expanded" },
sassOptions: { outputStyle: 'expanded' },
},
},
},
@ -78,7 +78,7 @@ module.exports = {
name: name,
resolve: {
alias: {
"@": resolve("src"),
'@': resolve('src'),
},
},
plugins: [
@ -86,71 +86,71 @@ module.exports = {
new CompressionPlugin({
cache: false, // 不启用文件缓存
test: /\.(js|css|html)?$/i, // 压缩文件格式
filename: "[path].gz[query]", // 压缩后的文件名
algorithm: "gzip", // 使用gzip压缩
filename: '[path].gz[query]', // 压缩后的文件名
algorithm: 'gzip', // 使用gzip压缩
minRatio: 0.8, // 压缩率小于1才会压缩
}),
],
},
chainWebpack(config) {
config.plugins.delete("preload"); // TODO: need test
config.plugins.delete("prefetch"); // TODO: need test
config.plugins.delete('preload') // TODO: need test
config.plugins.delete('prefetch') // TODO: need test
// set svg-sprite-loader
config.module.rule("svg").exclude.add(resolve("src/assets/icons")).end();
config.module.rule('svg').exclude.add(resolve('src/assets/icons')).end()
config.module
.rule("icons")
.rule('icons')
.test(/\.svg$/)
.include.add(resolve("src/assets/icons"))
.include.add(resolve('src/assets/icons'))
.end()
.use("svg-sprite-loader")
.loader("svg-sprite-loader")
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: "icon-[name]",
symbolId: 'icon-[name]',
})
.end();
.end()
config.when(process.env.NODE_ENV !== "development", (config) => {
config.when(process.env.NODE_ENV !== 'development', config => {
config
.plugin("ScriptExtHtmlWebpackPlugin")
.after("html")
.use("script-ext-html-webpack-plugin", [
.plugin('ScriptExtHtmlWebpackPlugin')
.after('html')
.use('script-ext-html-webpack-plugin', [
{
// `runtime` must same as runtimeChunk name. default is `runtime`
inline: /runtime\..*\.js$/,
},
])
.end();
.end()
config.optimization.splitChunks({
chunks: "all",
chunks: 'all',
cacheGroups: {
libs: {
name: "chunk-libs",
name: 'chunk-libs',
test: /[\\/]node_modules[\\/]/,
priority: 10,
chunks: "initial", // only package third parties that are initially dependent
chunks: 'initial', // only package third parties that are initially dependent
},
elementUI: {
name: "chunk-elementUI", // split elementUI into a single package
name: 'chunk-elementUI', // split elementUI into a single package
test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm
priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
},
commons: {
name: "chunk-commons",
test: resolve("src/components"), // can customize your rules
name: 'chunk-commons',
test: resolve('src/components'), // can customize your rules
minChunks: 3, // minimum common number
priority: 5,
reuseExistingChunk: true,
},
},
});
})
config.optimization.runtimeChunk("single"),
config.optimization.runtimeChunk('single'),
{
from: path.resolve(__dirname, "./public/robots.txt"), //防爬虫文件
to: "./", //到根目录下
};
});
from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件
to: './', //到根目录下
}
})
},
};
}