Browse Source

fix: 修改第一轮测试bug

sy-water-data-board-ui
hejunjie 9 months ago
parent
commit
99acd3dadc
  1. 1
      src/store/getters.js
  2. 6
      src/store/modules/user.js
  3. 15
      src/views/dike/runManage/maintenance/maintenancePlan/components/PlanDetail.vue
  4. 14
      src/views/dike/runManage/maintenance/maintenancePlan/index.vue
  5. 73
      src/views/dike/runManage/maintenance/maintenancePlanAccept/index.vue
  6. 80
      src/views/dike/runManage/maintenance/maintenancePlanAudit/index.vue
  7. 77
      src/views/dike/runManage/maintenance/maintenanceRecords/components/RecordDetail.vue
  8. 13
      src/views/dike/runManage/maintenance/maintenanceRecords/index.vue
  9. 15
      src/views/sluice/runManage/maintenance/maintenancePlan/components/PlanDetail.vue
  10. 13
      src/views/sluice/runManage/maintenance/maintenancePlan/index.vue
  11. 72
      src/views/sluice/runManage/maintenance/maintenancePlanAccept/index.vue
  12. 80
      src/views/sluice/runManage/maintenance/maintenancePlanAudit/index.vue
  13. 78
      src/views/sluice/runManage/maintenance/maintenanceRecords/components/RecordDetail.vue
  14. 13
      src/views/sluice/runManage/maintenance/maintenanceRecords/index.vue

1
src/store/getters.js

@ -5,6 +5,7 @@ const getters = {
visitedViews: state => state.tagsView.visitedViews,
cachedViews: state => state.tagsView.cachedViews,
token: state => state.user.token,
adcd: state => state.user.adcd,
avatar: state => state.user.avatar,
name: state => state.user.name,
logo: state => state.user.logo,

6
src/store/modules/user.js

@ -5,6 +5,7 @@ const user = {
state: {
token: getToken(),
name: '',
adcd: '',
avatar: '',
roles: [],
permissions: [],
@ -15,6 +16,9 @@ const user = {
SET_TOKEN: (state, token) => {
state.token = token
},
SET_ADCD: (state, adcd) => {
state.adcd = adcd
},
SET_NAME: (state, name) => {
state.name = name
},
@ -68,7 +72,9 @@ const user = {
} else {
commit('SET_ROLES', ['ROLE_DEFAULT'])
}
console.log(user)
commit('SET_NAME', user.userName)
commit('SET_ADCD', res.adcd)
commit('SET_AVATAR', avatar)
// commit('SET_LOGO', res.user.dept.adminLogo)
resolve(res)

15
src/views/dike/runManage/maintenance/maintenancePlan/components/PlanDetail.vue

@ -120,16 +120,15 @@
</el-select>
</el-form-item>
<el-form-item label="资金金额" prop="amount" class="ml-24">
<el-input
<el-input-number
:disabled="!canEdit || type === 'audit'"
class="w-240"
size="small"
type="number"
:min="0"
:max="9999999999"
v-model="subItem.amount"
placeholder="请输入"
></el-input>
></el-input-number>
<span class="ml-8">万元</span>
</el-form-item>
<i
@ -153,6 +152,7 @@
action="#"
:http-request="handleUploadProject"
:before-upload="beforeUploadProject"
:on-remove="handleRemoveProject"
accept=".docx,.doc,.pdf"
show-file-list
:file-list="projectList"
@ -170,6 +170,7 @@
:disabled="!canEdit || type === 'audit'"
class="w-240"
size="small"
maxlength="50"
v-model="formData.engineeringUnit"
placeholder="请输入"
></el-input>
@ -217,6 +218,7 @@
size="small"
:rows="5"
type="textarea"
maxlength="500"
v-model="formData.comment"
placeholder="请输入,文字限制500字内"
>
@ -231,6 +233,7 @@
action="#"
:http-request="handleUpload"
:before-upload="beforeUpload"
:on-remove="handleRemove"
accept=".docx,.doc,.pdf"
show-file-list
:file-list="filesList"
@ -365,6 +368,12 @@ export default {
});
},
methods: {
handleRemove(file, fileList) {
this.filesList = fileList
},
handleRemoveProject(file, fileList) {
this.projectList = fileList
},
//
getDetail() {
getYhPlanDetails(this.id).then((res) => {

14
src/views/dike/runManage/maintenance/maintenancePlan/index.vue

@ -32,6 +32,14 @@ export default {
name: "",
planDateArr: [],
},
pickerOption: {
disabledDate(time) {//5
let curDate = (new Date()).getTime();
let three = 5 * 12 * 30 * 24 * 3600 * 1000;
let threeMonths = curDate - three;
return time.getTime() > Date.now() || time.getTime() < threeMonths;
}
},
currentRow: {},
dialogVisible: false,
areasOptions: [], //
@ -214,7 +222,7 @@ export default {
const dict = this.supplementOptions?.find((element) => {
return element.dictValue == supplement.type
})
let subName = `${dict.dictLabel}/${supplement.amount}`
let subName = `${dict.dictLabel}/${supplement.amount.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`
name = name + ' ' + subName
})
return name;
@ -233,6 +241,7 @@ export default {
mounted() {
//
this.getTableData();
console.log(this.$store.getters.adcd)
},
};
</script>
@ -307,6 +316,7 @@ export default {
size="small"
class="ml-10"
v-model="paramsData.planDateArr"
:picker-options="pickerOption"
type="daterange"
placeholder="开始日期"
value-format="yyyy-MM-dd"
@ -392,7 +402,7 @@ export default {
<span
v-else-if="scope.row.status == 2"
style="color: #67c23a; font-weight: 600"
>通过</span
>通过</span
>
<span
v-else-if="scope.row.status == 3"

73
src/views/dike/runManage/maintenance/maintenancePlanAccept/index.vue

@ -13,10 +13,12 @@ import { getAreasData } from "@/api/areas/index";
import { reqCountMixins } from "@/mixins/reqCount";
import { paginationMixins } from "@/mixins/commonPagination";
import PlanDetail from "@/views/dike/runManage/maintenance/maintenancePlan/components/PlanDetail.vue";
import preview from "@/views/dike/runManage/dispatch/plan/components/preview.vue";
export default {
name: "InspectionItems",
components: {
preview,
PlanDetail,
TopBackTitle,
RecordDetail,
@ -32,6 +34,20 @@ export default {
name: "",
planDateArr: [],
},
pickerOption: {
disabledDate(time) {//5
let curDate = (new Date()).getTime();
let three = 5 * 12 * 30 * 24 * 3600 * 1000;
let threeMonths = curDate - three;
return time.getTime() > Date.now() || time.getTime() < threeMonths;
}
},
dialog: {
title: '预览',
dom: '',
visible: false
},
preViewFile: '',
currentRow: {},
dialogVisible: false,
patrolType: [], //
@ -199,11 +215,32 @@ export default {
const dict = this.supplementOptions?.find((element) => {
return element.dictValue == supplement.type
})
let subName = `${dict.dictLabel}/${supplement.amount}`
let subName = `${dict.dictLabel}/${supplement.amount.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`
name = name + ' ' + subName
})
return name;
},
getFileName(doc) {
if (!doc || !doc.docs) {
return ''
}
return doc.docs.map((v) => {
return {
name: v.split("/")[v.split("/").length - 1],
file: v
}
})
},
// dialog
closeDialog() {
this.dialog.visible = false
},
handlePreview(file) {
console.log(file)
this.dialog.visible = true
this.preViewFile = file
},
},
created() {
this.getTreeData();
@ -306,6 +343,7 @@ export default {
size="small"
class="ml-10"
v-model="paramsData.planDateArr"
:picker-options="pickerOption"
type="daterange"
placeholder="开始日期"
value-format="yyyy-MM-dd"
@ -335,8 +373,8 @@ export default {
>
<el-radio-button label="">全部</el-radio-button>
<el-radio-button label="1">待验收</el-radio-button>
<el-radio-button label="2">已驳回重整</el-radio-button>
<el-radio-button label="3">通过验收</el-radio-button>
<el-radio-button label="2">已驳回</el-radio-button>
<el-radio-button label="3">已验收</el-radio-button>
</el-radio-group>
</div>
@ -397,14 +435,14 @@ export default {
</el-table-column>
<el-table-column prop="auditContent" align="center" label="审批材料">
<template #default="scope">
<span>{{
scope.row &&
scope.row.doc &&
scope.row.doc.docs &&
scope.row.doc.docs
.map((v) => v.split("/")[v.split("/").length - 1])
.join("、")
}}</span>
<el-button
type="text"
size="small"
v-for="item in getFileName(scope.row.doc)"
@click="handlePreview(item.file)"
>
{{ item.name }}
</el-button>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="状态">
@ -426,12 +464,12 @@ export default {
>
<span
v-else-if="scope.row.status == '3'"
style="color: #f56c6c;"
style="color: #f56c6c; font-weight: 600"
>已驳回</span
>
<span
v-else-if="scope.row.status == '4'"
style="color: #f56c6c;"
style="color: #f56c6c; font-weight: 600"
>已撤回</span
>
</template>
@ -510,6 +548,15 @@ export default {
<el-button size="mini" @click="dialogVisible = false">取消</el-button>
</div>
</el-drawer>
<el-dialog
:title="dialog.title"
@close="closeDialog"
:visible.sync="dialog.visible"
width="80%"
append-to-body
>
<preview v-if="dialog.visible" :url="preViewFile"></preview>
</el-dialog>
</div>
</template>

80
src/views/dike/runManage/maintenance/maintenancePlanAudit/index.vue

@ -18,10 +18,12 @@ import { getAreasData } from "@/api/areas/index";
import { uploadFileData } from "@/api/system/upload";
import { reqCountMixins } from "@/mixins/reqCount";
import { paginationMixins } from "@/mixins/commonPagination";
import preview from "@/views/dike/runManage/dispatch/plan/components/preview.vue";
export default {
name: "InspectionItems",
components: {
preview,
TopBackTitle,
PlanDetail,
},
@ -36,6 +38,20 @@ export default {
name: "",
planDateArr: [],
},
pickerOption: {
disabledDate(time) {//5
let curDate = (new Date()).getTime();
let three = 5 * 12 * 30 * 24 * 3600 * 1000;
let threeMonths = curDate - three;
return time.getTime() > Date.now() || time.getTime() < threeMonths;
}
},
dialog: {
title: '预览',
dom: '',
visible: false
},
preViewFile: '',
currentRow: {},
dialogVisible: false,
areasOptions: [], //
@ -194,11 +210,31 @@ export default {
const dict = this.supplementOptions?.find((element) => {
return element.dictValue == supplement.type
})
let subName = `${dict.dictLabel}/${supplement.amount}`
let subName = `${dict.dictLabel}/${supplement.amount.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`
name = name + ' ' + subName
})
return name;
},
getFileName(doc) {
if (!doc || !doc.docs) {
return ''
}
return doc.docs.map((v) => {
return {
name: v.split("/")[v.split("/").length - 1],
file: v
}
})
},
// dialog
closeDialog() {
this.dialog.visible = false
},
handlePreview(file) {
this.dialog.visible = true
this.preViewFile = file
},
},
created() {
this.getTreeData();
@ -289,6 +325,7 @@ export default {
size="small"
class="ml-10"
v-model="paramsData.planDateArr"
:picker-options="pickerOption"
type="daterange"
placeholder="开始日期"
value-format="yyyy-MM-dd"
@ -377,14 +414,14 @@ export default {
</el-table-column>
<el-table-column prop="unit" align="center" label="维修计划方案">
<template #default="scope">
<span>{{
scope.row.detail &&
scope.row.detail.doc &&
scope.row.detail.doc.docs &&
scope.row.detail.doc.docs
.map((v) => v.split("/")[v.split("/").length - 1])
.join("、")
}}</span>
<el-button
type="text"
size="small"
v-for="item in getFileName(scope.row.detail.doc)"
@click="handlePreview(item.file)"
>
{{ item.name }}
</el-button>
</template>
</el-table-column>
<el-table-column prop="submitTime" align="center" label="提交时间">
@ -395,14 +432,14 @@ export default {
</el-table-column>
<el-table-column prop="auditContent" align="center" label="审批材料">
<template #default="scope">
<span>{{
scope.row &&
scope.row.doc &&
scope.row.doc.docs &&
scope.row.doc.docs
.map((v) => v.split("/")[v.split("/").length - 1])
.join("、")
}}</span>
<el-button
type="text"
size="small"
v-for="item in getFileName(scope.row.doc)"
@click="handlePreview(item.file)"
>
{{ item.name }}
</el-button>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="状态">
@ -509,6 +546,15 @@ export default {
<el-button size="mini" @click="dialogVisible = false">取消</el-button>
</div>
</el-drawer>
<el-dialog
:title="dialog.title"
@close="closeDialog"
:visible.sync="dialog.visible"
width="80%"
append-to-body
>
<preview v-if="dialog.visible" :url="preViewFile"></preview>
</el-dialog>
</div>
</template>

77
src/views/dike/runManage/maintenance/maintenanceRecords/components/RecordDetail.vue

@ -125,16 +125,15 @@
</el-select>
</el-form-item>
<el-form-item label="资金金额" prop="amount" class="ml-24">
<el-input
<el-input-number
:disabled="!canEdit || type === 'audit'"
class="w-240"
size="small"
:disabled="!canEdit || type === 'accept'"
type="number"
:min="0"
:max="9999999999"
v-model="subItem.amount"
placeholder="请输入"
></el-input>
></el-input-number>
<span class="ml-8">万元</span>
</el-form-item>
<i
@ -157,6 +156,7 @@
action="#"
:http-request="handleUpload"
:before-upload="beforeUpload"
:on-remove="handleRemove"
accept=".docx,.doc,.pdf"
show-file-list
:file-list="filesList"
@ -176,12 +176,13 @@
:disabled="!canEdit || type === 'accept'"
size="small"
:rows="5"
maxlength="500"
type="textarea"
v-model="ruleForm.remark"
placeholder="请输入,文字限制500字内"
></el-input>
</el-form-item>
<el-form-item label-width="130px" label="维养图片" prop="operators">
<el-form-item label-width="130px" label="维养图片" prop="ledgerImg">
<el-upload
:disabled="!canEdit || type === 'accept'"
class=""
@ -189,7 +190,7 @@
:http-request="handleUploadLedger"
:before-upload="beforeUploadLedger"
accept=".jpg,.png,.tif,.gif"
show-file-list
:show-file-list="false"
:file-list="ledgerList"
>
<el-button size="small" :disabled="!canEdit || type === 'accept'" type="primary">点击上传</el-button>
@ -197,6 +198,24 @@
文件上传支持.jpg .png .tif .gif 单张图片5M以内 最多上传3张
</div>
</el-upload>
<div class="mt-10 img-list-box">
<div
class="img-box"
v-for="(url, index) in ledgerList"
:key="url"
>
<el-image
:src="url"
:preview-src-list="[url]"
class="w-240 h-124"
></el-image>
<i
class="el-icon-error del-icon"
:size="18"
@click="handleRemoveledger(index)"
></i>
</div>
</div>
</el-form-item>
<el-row :gutter="20" v-if="type === 'accept' && canEdit">
<el-col :span="12">
@ -206,6 +225,7 @@
size="small"
:rows="5"
type="textarea"
maxlength="500"
v-model="ruleForm.comment"
placeholder="请输入,文字限制500字内"
>
@ -220,6 +240,7 @@
action="#"
:http-request="handleUpload1"
:before-upload="beforeUpload1"
:on-remove="handleRemove1"
accept=".docx,.doc,.pdf"
show-file-list
:file-list="filesList1"
@ -295,15 +316,15 @@ export default {
planId: [
{ required: false, message: "请输入维养计划名称", trigger: "blur" },
],
before: [
{ required: true, message: "请输入维修养护前", trigger: "blur" },
remark: [
{ required: true, message: "请输入维修描述", trigger: "blur" },
],
comment: [{ required: true, message: "请输入审批意见", trigger: "blur" }],
middle: [
{ required: true, message: "请输入维修养护过程", trigger: "blur" },
ledgerDoc: [
{required: true, validator: this.validatorProjectList },
],
after: [
{ required: true, message: "请输入维修养护结束后", trigger: "blur" },
ledgerImg: [
{ required: true, validator: this.validatorProjectListImg },
],
},
supplementRules: {
@ -343,6 +364,32 @@ export default {
},
},
methods: {
handleRemove(file, fileList) {
this.filesList = fileList
},
handleRemove1(file, fileList) {
this.filesList1 = fileList
},
handleRemoveledger(index) {
this.ledgerList.splice(index, 1);
},
//
validatorProjectList(rule, value, callback) {
if (this.filesList.length === 0) {
callback(new Error("请上传维养台账"));
} else {
callback();
}
},
//
validatorProjectListImg(rule, value, callback) {
if (this.ledgerList.length === 0) {
callback(new Error("请上传维养图片"));
} else {
callback();
}
},
getDetail() {
getYhRecord({id: this.id}).then((res) => {
this.ruleForm = res.data;
@ -399,8 +446,8 @@ export default {
//
beforeUploadLedger(e) {
const { name, size } = e;
if (size > 50 * 1024 * 1024) {
this.$message.warning("文件大小不能超过100M");
if (size > 5 * 1024 * 1024) {
this.$message.warning("文件大小不能超过5M");
return false;
}
if (!/\.(jpg|png|tif|gif)$/.test(name)) {
@ -549,7 +596,7 @@ export default {
const dict = this.supplementOptions?.find((element) => {
return element.dictValue == supplement.type
})
let subName = `${dict.dictLabel}/${supplement.amount}`
let subName = `${dict.dictLabel}/${supplement.amount.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`
name = name + ' ' + subName
})
return name;

13
src/views/dike/runManage/maintenance/maintenanceRecords/index.vue

@ -32,6 +32,14 @@ export default {
name: "",
planDateArr: [],
},
pickerOption: {
disabledDate(time) {//5
let curDate = (new Date()).getTime();
let three = 5 * 12 * 30 * 24 * 3600 * 1000;
let threeMonths = curDate - three;
return time.getTime() > Date.now() || time.getTime() < threeMonths;
}
},
areasOptions: [],
embankmentTypeOptions: [],
currentRow: {},
@ -217,7 +225,7 @@ export default {
const dict = this.supplementOptions?.find((element) => {
return element.dictValue == supplement.type
})
let subName = `${dict.dictLabel}/${supplement.amount}`
let subName = `${dict.dictLabel}/${supplement.amount.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`
name = name + ' ' + subName
})
return name;
@ -339,6 +347,7 @@ export default {
size="small"
class="ml-10"
v-model="paramsData.planDateArr"
:picker-options="pickerOption"
type="daterange"
placeholder="开始日期"
value-format="yyyy-MM-dd"
@ -439,7 +448,7 @@ export default {
<span
v-else-if="scope.row.status == 2"
style="color: #67c23a; font-weight: 600"
>通过</span
>通过</span
>
<span
v-else-if="scope.row.status == 3"

15
src/views/sluice/runManage/maintenance/maintenancePlan/components/PlanDetail.vue

@ -120,16 +120,15 @@
</el-select>
</el-form-item>
<el-form-item label="资金金额" prop="amount" class="ml-24">
<el-input
<el-input-number
:disabled="!canEdit || type === 'audit'"
class="w-240"
size="small"
type="number"
:min="0"
:max="9999999999"
v-model="subItem.amount"
placeholder="请输入"
></el-input>
></el-input-number>
<span class="ml-8">万元</span>
</el-form-item>
<i
@ -153,6 +152,7 @@
action="#"
:http-request="handleUploadProject"
:before-upload="beforeUploadProject"
:on-remove="handleRemoveProject"
accept=".docx,.doc,.pdf"
show-file-list
:file-list="projectList"
@ -170,6 +170,7 @@
:disabled="!canEdit || type === 'audit'"
class="w-240"
size="small"
maxlength="50"
v-model="formData.engineeringUnit"
placeholder="请输入"
></el-input>
@ -217,6 +218,7 @@
size="small"
:rows="5"
type="textarea"
maxlength="500"
v-model="formData.comment"
placeholder="请输入,文字限制500字内"
>
@ -231,6 +233,7 @@
action="#"
:http-request="handleUpload"
:before-upload="beforeUpload"
:on-remove="handleRemove"
accept=".docx,.doc,.pdf"
show-file-list
:file-list="filesList"
@ -364,6 +367,12 @@ export default {
});
},
methods: {
handleRemove(file, fileList) {
this.filesList = fileList
},
handleRemoveProject(file, fileList) {
this.projectList = fileList
},
//
getDetail() {
getRunSzYhPlan({id: this.id}).then((res) => {

13
src/views/sluice/runManage/maintenance/maintenancePlan/index.vue

@ -31,6 +31,14 @@ export default {
name: "",
planDateArr: [],
},
pickerOption: {
disabledDate(time) {//5
let curDate = (new Date()).getTime();
let three = 5 * 12 * 30 * 24 * 3600 * 1000;
let threeMonths = curDate - three;
return time.getTime() > Date.now() || time.getTime() < threeMonths;
}
},
currentRow: {},
dialogVisible: false,
areasOptions: [], //
@ -213,7 +221,7 @@ export default {
const dict = this.supplementOptions?.find((element) => {
return element.dictValue == supplement.type
})
let subName = `${dict.dictLabel}/${supplement.amount}`
let subName = `${dict.dictLabel}/${supplement.amount.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`
name = name + ' ' + subName
})
return name;
@ -306,6 +314,7 @@ export default {
size="small"
class="ml-10"
v-model="paramsData.planDateArr"
:picker-options="pickerOption"
type="daterange"
placeholder="开始日期"
value-format="yyyy-MM-dd"
@ -388,7 +397,7 @@ export default {
<span
v-else-if="scope.row.status == 2"
style="color: #67c23a; font-weight: 600"
>通过</span
>通过</span
>
<span
v-else-if="scope.row.status == 3"

72
src/views/sluice/runManage/maintenance/maintenancePlanAccept/index.vue

@ -11,10 +11,12 @@ import { getAreasData } from "@/api/areas/index";
import { reqCountMixins } from "@/mixins/reqCount";
import { paginationMixins } from "@/mixins/commonPagination";
import PlanDetail from "@/views/dike/runManage/maintenance/maintenancePlan/components/PlanDetail.vue";
import preview from "@/views/dike/runManage/dispatch/plan/components/preview.vue";
export default {
name: "InspectionItems",
components: {
preview,
PlanDetail,
TopBackTitle,
RecordDetail,
@ -30,6 +32,20 @@ export default {
name: "",
planDateArr: [],
},
pickerOption: {
disabledDate(time) {//5
let curDate = (new Date()).getTime();
let three = 5 * 12 * 30 * 24 * 3600 * 1000;
let threeMonths = curDate - three;
return time.getTime() > Date.now() || time.getTime() < threeMonths;
}
},
dialog: {
title: '预览',
dom: '',
visible: false
},
preViewFile: '',
currentRow: {},
dialogVisible: false,
personnelList: [], //
@ -196,11 +212,31 @@ export default {
const dict = this.supplementOptions?.find((element) => {
return element.dictValue == supplement.type
})
let subName = `${dict.dictLabel}/${supplement.amount}`
let subName = `${dict.dictLabel}/${supplement.amount.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`
name = name + ' ' + subName
})
return name;
},
getFileName(doc) {
if (!doc || !doc.docs) {
return ''
}
return doc.docs.map((v) => {
return {
name: v.split("/")[v.split("/").length - 1],
file: v
}
})
},
// dialog
closeDialog() {
this.dialog.visible = false
},
handlePreview(file) {
this.dialog.visible = true
this.preViewFile = file
},
},
created() {
this.getTreeData();
@ -300,6 +336,7 @@ export default {
size="small"
class="ml-10"
v-model="paramsData.planDateArr"
:picker-options="pickerOption"
type="daterange"
placeholder="开始日期"
value-format="yyyy-MM-dd"
@ -329,8 +366,8 @@ export default {
>
<el-radio-button label="">全部</el-radio-button>
<el-radio-button label="1">待验收</el-radio-button>
<el-radio-button label="2">已驳回重整</el-radio-button>
<el-radio-button label="3">通过验收</el-radio-button>
<el-radio-button label="2">已驳回</el-radio-button>
<el-radio-button label="3">已验收</el-radio-button>
</el-radio-group>
</div>
@ -391,14 +428,14 @@ export default {
</el-table-column>
<el-table-column prop="auditContent" align="center" label="审批材料">
<template #default="scope">
<span>{{
scope.row &&
scope.row.doc &&
scope.row.doc.docs &&
scope.row.doc.docs
.map((v) => v.split("/")[v.split("/").length - 1])
.join("、")
}}</span>
<el-button
type="text"
size="small"
v-for="item in getFileName(scope.row.doc)"
@click="handlePreview(item.file)"
>
{{ item.name }}
</el-button>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="状态">
@ -420,12 +457,12 @@ export default {
>
<span
v-else-if="scope.row.status == '3'"
style="color: #f56c6c;"
style="color: #f56c6c; font-weight: 600"
>已驳回</span
>
<span
v-else-if="scope.row.status == '4'"
style="color: #f56c6c;"
style="color: #f56c6c; font-weight: 600"
>已撤回</span
>
</template>
@ -504,6 +541,15 @@ export default {
<el-button size="mini" @click="dialogVisible = false">取消</el-button>
</div>
</el-drawer>
<el-dialog
:title="dialog.title"
@close="closeDialog"
:visible.sync="dialog.visible"
width="80%"
append-to-body
>
<preview v-if="dialog.visible" :url="preViewFile"></preview>
</el-dialog>
</div>
</template>

80
src/views/sluice/runManage/maintenance/maintenancePlanAudit/index.vue

@ -9,10 +9,12 @@ import { getAreasData } from "@/api/areas/index";
import { reqCountMixins } from "@/mixins/reqCount";
import { paginationMixins } from "@/mixins/commonPagination";
import preview from "@/views/dike/runManage/dispatch/plan/components/preview.vue";
export default {
name: "InspectionItems",
components: {
preview,
TopBackTitle,
PlanDetail,
},
@ -27,6 +29,20 @@ export default {
name: "",
planDateArr: [],
},
pickerOption: {
disabledDate(time) {//5
let curDate = (new Date()).getTime();
let three = 5 * 12 * 30 * 24 * 3600 * 1000;
let threeMonths = curDate - three;
return time.getTime() > Date.now() || time.getTime() < threeMonths;
}
},
dialog: {
title: '预览',
dom: '',
visible: false
},
preViewFile: '',
currentRow: {},
dialogVisible: false,
areasOptions: [], //
@ -185,11 +201,31 @@ export default {
const dict = this.supplementOptions?.find((element) => {
return element.dictValue == supplement.type
})
let subName = `${dict.dictLabel}/${supplement.amount}`
let subName = `${dict.dictLabel}/${supplement.amount.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`
name = name + ' ' + subName
})
return name;
},
getFileName(doc) {
if (!doc || !doc.docs) {
return ''
}
return doc.docs.map((v) => {
return {
name: v.split("/")[v.split("/").length - 1],
file: v
}
})
},
// dialog
closeDialog() {
this.dialog.visible = false
},
handlePreview(file) {
this.dialog.visible = true
this.preViewFile = file
},
},
created() {
this.getTreeData();
@ -280,6 +316,7 @@ export default {
size="small"
class="ml-10"
v-model="paramsData.planDateArr"
:picker-options="pickerOption"
type="daterange"
placeholder="开始日期"
value-format="yyyy-MM-dd"
@ -368,14 +405,14 @@ export default {
</el-table-column>
<el-table-column prop="unit" align="center" label="维修计划方案">
<template #default="scope">
<span>{{
scope.row.detail &&
scope.row.detail.doc &&
scope.row.detail.doc.docs &&
scope.row.detail.doc.docs
.map((v) => v.split("/")[v.split("/").length - 1])
.join("、")
}}</span>
<el-button
type="text"
size="small"
v-for="item in getFileName(scope.row.detail.doc)"
@click="handlePreview(item.file)"
>
{{ item.name }}
</el-button>
</template>
</el-table-column>
<el-table-column prop="submitTime" align="center" label="提交时间">
@ -386,14 +423,14 @@ export default {
</el-table-column>
<el-table-column prop="auditContent" align="center" label="审批材料">
<template #default="scope">
<span>{{
scope.row &&
scope.row.doc &&
scope.row.doc.docs &&
scope.row.doc.docs
.map((v) => v.split("/")[v.split("/").length - 1])
.join("、")
}}</span>
<el-button
type="text"
size="small"
v-for="item in getFileName(scope.row.doc)"
@click="handlePreview(item.file)"
>
{{ item.name }}
</el-button>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="状态">
@ -500,6 +537,15 @@ export default {
<el-button size="mini" @click="dialogVisible = false">取消</el-button>
</div>
</el-drawer>
<el-dialog
:title="dialog.title"
@close="closeDialog"
:visible.sync="dialog.visible"
width="80%"
append-to-body
>
<preview v-if="dialog.visible" :url="preViewFile"></preview>
</el-dialog>
</div>
</template>

78
src/views/sluice/runManage/maintenance/maintenanceRecords/components/RecordDetail.vue

@ -125,16 +125,15 @@
</el-select>
</el-form-item>
<el-form-item label="资金金额" prop="amount" class="ml-24">
<el-input
<el-input-number
:disabled="!canEdit || type === 'audit'"
class="w-240"
size="small"
:disabled="!canEdit || type === 'accept'"
type="number"
:min="0"
:max="9999999999"
v-model="subItem.amount"
placeholder="请输入"
></el-input>
></el-input-number>
<span class="ml-8">万元</span>
</el-form-item>
<i
@ -157,6 +156,7 @@
action="#"
:http-request="handleUpload"
:before-upload="beforeUpload"
:on-remove="handleRemove"
accept=".docx,.doc,.pdf"
show-file-list
:file-list="filesList"
@ -176,20 +176,22 @@
:disabled="!canEdit || type === 'accept'"
size="small"
:rows="5"
maxlength="500"
type="textarea"
v-model="ruleForm.remark"
placeholder="请输入,文字限制500字内"
></el-input>
</el-form-item>
<el-form-item label-width="130px" label="维养图片" prop="operators">
<el-form-item label-width="130px" label="维养图片" prop="ledgerImg">
<el-upload
:disabled="!canEdit || type === 'accept'"
class=""
action="#"
:http-request="handleUploadLedger"
:before-upload="beforeUploadLedger"
:on-remove="handleRemoveledger"
accept=".jpg,.png,.tif,.gif"
show-file-list
:show-file-list="false"
:file-list="ledgerList"
>
<el-button size="small" :disabled="!canEdit || type === 'accept'" type="primary">点击上传</el-button>
@ -197,6 +199,24 @@
文件上传支持.jpg .png .tif .gif 单张图片5M以内 最多上传3张
</div>
</el-upload>
<div class="mt-10 img-list-box">
<div
class="img-box"
v-for="(url, index) in ledgerList"
:key="url"
>
<el-image
:src="url"
:preview-src-list="[url]"
class="w-240 h-124"
></el-image>
<i
class="el-icon-error del-icon"
:size="18"
@click="handleRemoveledger(index)"
></i>
</div>
</div>
</el-form-item>
<el-row :gutter="20" v-if="type === 'accept' && canEdit">
<el-col :span="12">
@ -206,6 +226,7 @@
size="small"
:rows="5"
type="textarea"
maxlength="500"
v-model="ruleForm.comment"
placeholder="请输入,文字限制500字内"
>
@ -220,6 +241,7 @@
action="#"
:http-request="handleUpload1"
:before-upload="beforeUpload1"
:on-remove="handleRemove1"
accept=".docx,.doc,.pdf"
show-file-list
:file-list="filesList1"
@ -292,15 +314,15 @@ export default {
planId: [
{ required: false, message: "请输入维养计划名称", trigger: "blur" },
],
before: [
{ required: true, message: "请输入维修养护前", trigger: "blur" },
remark: [
{ required: true, message: "请输入维修描述", trigger: "blur" },
],
comment: [{ required: true, message: "请输入审批意见", trigger: "blur" }],
middle: [
{ required: true, message: "请输入维修养护过程", trigger: "blur" },
ledgerDoc: [
{required: true, validator: this.validatorProjectList },
],
after: [
{ required: true, message: "请输入维修养护结束后", trigger: "blur" },
ledgerImg: [
{ required: true, validator: this.validatorProjectListImg },
],
},
supplementRules: {
@ -340,6 +362,32 @@ export default {
},
},
methods: {
handleRemove(file, fileList) {
this.filesList = fileList
},
handleRemove1(file, fileList) {
this.filesList1 = fileList
},
handleRemoveledger(index) {
this.ledgerList.splice(index, 1);
},
//
validatorProjectList(rule, value, callback) {
if (this.filesList.length === 0) {
callback(new Error("请上传计划方案"));
} else {
callback();
}
},
//
validatorProjectListImg(rule, value, callback) {
if (this.ledgerList.length === 0) {
callback(new Error("请上传计划方案"));
} else {
callback();
}
},
getDetail() {
getRunSzYhRecord({id: this.id}).then((res) => {
this.ruleForm = res.data;
@ -396,8 +444,8 @@ export default {
//
beforeUploadLedger(e) {
const { name, size } = e;
if (size > 50 * 1024 * 1024) {
this.$message.warning("文件大小不能超过100M");
if (size > 5 * 1024 * 1024) {
this.$message.warning("文件大小不能超过5M");
return false;
}
if (!/\.(jpg|png|tif|gif)$/.test(name)) {
@ -547,7 +595,7 @@ export default {
const dict = this.supplementOptions?.find((element) => {
return element.dictValue == supplement.type
})
let subName = `${dict.dictLabel}/${supplement.amount}`
let subName = `${dict.dictLabel}/${supplement.amount.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`
name = name + ' ' + subName
})
return name;

13
src/views/sluice/runManage/maintenance/maintenanceRecords/index.vue

@ -31,6 +31,14 @@ export default {
name: "",
planDateArr: [],
},
pickerOption: {
disabledDate(time) {//5
let curDate = (new Date()).getTime();
let three = 5 * 12 * 30 * 24 * 3600 * 1000;
let threeMonths = curDate - three;
return time.getTime() > Date.now() || time.getTime() < threeMonths;
}
},
areasOptions: [],
embankmentTypeOptions: [],
currentRow: {},
@ -216,7 +224,7 @@ export default {
const dict = this.supplementOptions?.find((element) => {
return element.dictValue == supplement.type
})
let subName = `${dict.dictLabel}/${supplement.amount}`
let subName = `${dict.dictLabel}/${supplement.amount.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}`
name = name + ' ' + subName
})
return name;
@ -338,6 +346,7 @@ export default {
size="small"
class="ml-10"
v-model="paramsData.planDateArr"
:picker-options="pickerOption"
type="daterange"
placeholder="开始日期"
value-format="yyyy-MM-dd"
@ -436,7 +445,7 @@ export default {
<span
v-else-if="scope.row.status == 2"
style="color: #67c23a; font-weight: 600"
>通过</span
>通过</span
>
<span
v-else-if="scope.row.status == 3"

Loading…
Cancel
Save