技术监督需求整改 修改时间组件
This commit is contained in:
@@ -28,11 +28,12 @@ import { ref, onMounted, nextTick, watch } from 'vue'
|
||||
|
||||
interface Props {
|
||||
nextFlag?: boolean
|
||||
|
||||
theCurrentTime: boolean
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
nextFlag:false
|
||||
nextFlag: false,
|
||||
theCurrentTime: false
|
||||
})
|
||||
|
||||
const interval = ref(3)
|
||||
@@ -286,7 +287,7 @@ const next = () => {
|
||||
} else {
|
||||
endTime = year + '-' + presentM + '-' + presentD
|
||||
}
|
||||
} else if (year == presentY ) {
|
||||
} else if (year == presentY) {
|
||||
startTime = year + '-01-01'
|
||||
// 当前月份大约3月份
|
||||
if (presentM > 3) {
|
||||
@@ -407,7 +408,7 @@ const setTime = (flag = 0, e = 0) => {
|
||||
|
||||
let data = ''
|
||||
|
||||
if ((dd < 4 || dd == 0) && interval.value != 4) {
|
||||
if ((dd < 4 || dd == 0) && interval.value != 4 && !props.theCurrentTime) {
|
||||
data = window.XEUtils.toDateString(new Date().getTime() - (e + dd) * 3600 * 1000 * 24, 'yyyy-MM-dd')
|
||||
} else {
|
||||
data = window.XEUtils.toDateString(new Date().getTime() - e * 3600 * 1000 * 24, 'yyyy-MM-dd')
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
:inline="true"
|
||||
>
|
||||
<el-form-item label="日期" v-if="datePicker" style="grid-column: span 2; max-width: 570px">
|
||||
<DatePicker ref="datePickerRef" :nextFlag="nextFlag"></DatePicker>
|
||||
<DatePicker ref="datePickerRef" :nextFlag="nextFlag" :theCurrentTime="theCurrentTime"></DatePicker>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="区域" v-if="area">
|
||||
@@ -61,14 +61,16 @@ interface Props {
|
||||
datePicker?: boolean
|
||||
area?: boolean
|
||||
showSearch?: boolean
|
||||
nextFlag?: boolean
|
||||
nextFlag?: boolean //控制时间是否可以往后推
|
||||
theCurrentTime?: boolean //控制时间前3天展示上个月时间
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
datePicker: false,
|
||||
area: false,
|
||||
showSearch: true,
|
||||
nextFlag: false
|
||||
nextFlag: false,
|
||||
theCurrentTime: false
|
||||
})
|
||||
// 动态计算table高度
|
||||
const resizeObserver = new ResizeObserver(entries => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="panorama" :style="height">
|
||||
<div class="mapBox" v-show="lineInfo">
|
||||
<DatePicker ref="datePickerRef" style="display: none" />
|
||||
<DatePicker ref="datePickerRef" style="display: none" theCurrentTime />
|
||||
<el-form :inline="true" :model="form" class="demo-form-inline">
|
||||
<el-form-item>
|
||||
<Area
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<TableHeader area datePicker nextFlag ref="TableHeaderRef">
|
||||
<TableHeader area datePicker nextFlag ref="TableHeaderRef">
|
||||
<template #select>
|
||||
<el-form-item label="监督类型">
|
||||
<el-select v-model="tableStore.table.params.supvType" clearable placeholder="请选择流程状态">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog draggable :title="title" v-model="planAddition" :before-close="cancelFn">
|
||||
<el-dialog draggable :title="title" width="900px" v-model="planAddition" :before-close="cancelFn">
|
||||
<el-form :model="form" ref="formRef" :rules="rules" label-width="auto" class="form-two" scroll-to-error>
|
||||
<el-form-item label="计划负责单位:">
|
||||
<el-input v-model="form.deptName" disabled></el-input>
|
||||
@@ -33,15 +33,39 @@
|
||||
<el-form-item for="-" label="测试负责人:" prop="completeBy">
|
||||
<el-input v-model="form.completeBy" placeholder="请输入测试负责人"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item for="-" class="uploadFile" label="测试报告:" prop="testReport">
|
||||
<el-form-item for="-" label="测试是否有问题:" prop="problemFlag">
|
||||
<!-- 默认值 否 -->
|
||||
<el-radio-group v-model="form.problemFlag">
|
||||
<el-radio :value="1">是</el-radio>
|
||||
<el-radio :value="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item for="-" class="uploadFile" label="技术监督报告:" prop="supervisionReport">
|
||||
<el-upload
|
||||
ref="uploadRef"
|
||||
v-model:file-list="form.testReport"
|
||||
v-model:file-list="form.supervisionReport"
|
||||
action=""
|
||||
:accept="acceptType"
|
||||
:limit="1"
|
||||
:on-exceed="handleExceed"
|
||||
:on-change="choose"
|
||||
:on-change="event => choose(event, 'supervisionReport')"
|
||||
:auto-upload="false"
|
||||
:on-progress="uploadFileName('supervisionReport')"
|
||||
>
|
||||
<template #trigger>
|
||||
<el-button type="primary">上传文件</el-button>
|
||||
</template>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item for="-" class="uploadFile" label="测试报告:" prop="testReport">
|
||||
<el-upload
|
||||
ref="upload1Ref"
|
||||
v-model:file-list="form.testReport"
|
||||
action=""
|
||||
:accept="acceptType"
|
||||
:limit="1"
|
||||
:on-exceed="handleExceed1"
|
||||
:on-change="event => choose(event, 'testReport')"
|
||||
:auto-upload="false"
|
||||
:on-progress="uploadFileName('testReport')"
|
||||
>
|
||||
@@ -50,13 +74,7 @@
|
||||
</template>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item for="-" label="测试是否有问题:" prop="problemFlag">
|
||||
<!-- 默认值 否 -->
|
||||
<el-radio-group v-model="form.problemFlag">
|
||||
<el-radio :value="1">是</el-radio>
|
||||
<el-radio :value="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
style="width: 100%"
|
||||
for="-"
|
||||
@@ -92,6 +110,7 @@ const tableStore = inject('tableStore') as TableStore
|
||||
let uploadName = ref('')
|
||||
// 上传报告
|
||||
const uploadRef = ref()
|
||||
const upload1Ref = ref()
|
||||
const fileList = ref<UploadUserFile[]>([])
|
||||
const emit = defineEmits(['onsubmit'])
|
||||
const dictData = useDictData()
|
||||
@@ -109,6 +128,7 @@ const form: any = ref({
|
||||
completeTime: '',
|
||||
completeBy: '',
|
||||
testReport: [],
|
||||
supervisionReport: [],
|
||||
problemDetail: '', //测试问题
|
||||
problemFlag: 0 //是否有问题
|
||||
})
|
||||
@@ -139,6 +159,7 @@ const open = async (text: string, id: string, addFlag: boolean) => {
|
||||
form.value.completeTime = ''
|
||||
form.value.completeBy = ''
|
||||
form.value.testReport = []
|
||||
form.value.supervisionReport = []
|
||||
form.value.problemDetail = ''
|
||||
form.value.problemFlag = 0
|
||||
fileList.value = []
|
||||
@@ -158,9 +179,18 @@ const open = async (text: string, id: string, addFlag: boolean) => {
|
||||
name: res.data.testReport.split('/')[2]
|
||||
}
|
||||
],
|
||||
supervisionReport:
|
||||
res.data.supervisionReport == null
|
||||
? []
|
||||
: [
|
||||
{
|
||||
name: res.data.supervisionReport.split('/')[2]
|
||||
}
|
||||
],
|
||||
problemDetail: res.data.problemDetail
|
||||
}
|
||||
testReport.value = res.data.testReport
|
||||
supervisionReport.value = res.data.supervisionReport
|
||||
}
|
||||
})
|
||||
|
||||
@@ -169,12 +199,14 @@ const open = async (text: string, id: string, addFlag: boolean) => {
|
||||
|
||||
//处理成效报告
|
||||
const testReport = ref('')
|
||||
const supervisionReport = ref('')
|
||||
|
||||
const formRef = ref()
|
||||
const rules = {
|
||||
completeTime: [{ required: true, message: '选择实际完成时间 ', trigger: 'change' }],
|
||||
completeBy: [{ required: true, message: '请输入测试负责人', trigger: 'blur' }],
|
||||
testReport: [{ required: true, message: '请上传文件', trigger: 'change' }],
|
||||
supervisionReport: [{ required: true, message: '请上传文件', trigger: 'change' }],
|
||||
problemFlag: [{ required: true, message: '请选择测试是否有问题', trigger: 'change' }],
|
||||
problemDetail: [{ required: true, message: '请输入测试问题', trigger: 'blur' }]
|
||||
}
|
||||
@@ -188,26 +220,34 @@ const submitFn = (flag: boolean) => {
|
||||
if (flag) {
|
||||
const subForm = JSON.parse(JSON.stringify(form.value))
|
||||
subForm.testReport = testReport.value
|
||||
subForm.supervisionReport = supervisionReport.value
|
||||
subForm.saveOrCheckflag = '1'
|
||||
|
||||
//新增,则组装业务数据提交后台
|
||||
addSurveyTest(subForm).then(res => {
|
||||
ElMessage.success('保存成功!')
|
||||
tableStore.index()
|
||||
planAddition.value = false
|
||||
})
|
||||
//查询进线数据,避免一直处于loading状态
|
||||
|
||||
//新增,则组装业务数据提交后台
|
||||
addSurveyTest(subForm).then(res => {
|
||||
ElMessage.success('保存成功!')
|
||||
tableStore.index()
|
||||
planAddition.value = false
|
||||
})
|
||||
//查询进线数据,避免一直处于loading状态
|
||||
} else {
|
||||
formRef.value.validate(async (valid: any) => {
|
||||
if (!testReport.value) {
|
||||
return ElMessage({
|
||||
message: '请上传处理成效报告',
|
||||
message: '请上传处理成效报告!',
|
||||
type: 'warning'
|
||||
})
|
||||
}
|
||||
if (!supervisionReport.value) {
|
||||
return ElMessage({
|
||||
message: '请上传技术监督报告!',
|
||||
type: 'warning'
|
||||
})
|
||||
}
|
||||
if (valid) {
|
||||
const subForm = JSON.parse(JSON.stringify(form.value))
|
||||
subForm.testReport = testReport.value
|
||||
subForm.supervisionReport = supervisionReport.value
|
||||
subForm.saveOrCheckflag = '2'
|
||||
if (addFlagRef.value) {
|
||||
//新增,则组装业务数据提交后台
|
||||
@@ -247,11 +287,16 @@ const audit = (filePath: any) => {
|
||||
|
||||
defineExpose({ open })
|
||||
|
||||
const choose = (e: any) => {
|
||||
uploadFile(e.raw, '/supervision/').then(res => {
|
||||
testReport.value = res.data.name
|
||||
// form.value.testReport = res.data.name
|
||||
})
|
||||
const choose = (e: any, text: string) => {
|
||||
if (text == 'testReport') {
|
||||
uploadFile(e.raw, '/supervision/').then(res => {
|
||||
testReport.value = res.data.name
|
||||
})
|
||||
} else {
|
||||
uploadFile(e.raw, '/supervision/').then(res => {
|
||||
supervisionReport.value = res.data.name
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const handleExceed: UploadProps['onExceed'] = files => {
|
||||
@@ -260,6 +305,12 @@ const handleExceed: UploadProps['onExceed'] = files => {
|
||||
file.uid = genFileId()
|
||||
uploadRef.value!.handleStart(file)
|
||||
}
|
||||
const handleExceed1: UploadProps['onExceed'] = files => {
|
||||
upload1Ref.value!.clearFiles()
|
||||
const file = files[0] as UploadRawFile
|
||||
file.uid = genFileId()
|
||||
upload1Ref.value!.handleStart(file)
|
||||
}
|
||||
|
||||
//上传报告改变
|
||||
const uploadFileName = val => {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
6T
|
||||
<template>
|
||||
<TableHeader area datePicker nextFlag ref="TableHeaderRef">
|
||||
<template v-slot:select>
|
||||
|
||||
@@ -47,6 +47,12 @@
|
||||
{{ detailData?.problemDetail }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :span="2" label="技术监督报告">
|
||||
<el-icon class="elView" v-if="detailData?.supervisionReportName">
|
||||
<View @click="openFile(detailData?.supervisionReportName)" />
|
||||
</el-icon>
|
||||
<a :href="detailData.supervisionReport" target="_blank">{{ detailData.supervisionReportName }}</a>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :span="2" label="测试报告">
|
||||
<el-icon class="elView" v-if="detailData?.testReportName">
|
||||
<View @click="openFile(detailData?.testReportName)" />
|
||||
@@ -102,6 +108,10 @@ const getFileData = async () => {
|
||||
detailData.value.testReport = res.data.url
|
||||
detailData.value.testReportName = res.data.fileName
|
||||
})
|
||||
await getFileNameAndFilePath({ filePath: detailData.value.supervisionReport }).then(res => {
|
||||
detailData.value.supervisionReport = res.data.url
|
||||
detailData.value.supervisionReportName = res.data.fileName
|
||||
})
|
||||
}
|
||||
|
||||
const getProblemFlagDetail = (status: number) => {
|
||||
|
||||
@@ -147,6 +147,7 @@ const tableStore = new TableStore({
|
||||
row.status,
|
||||
row.issueDetail,
|
||||
row.problemPath,
|
||||
row.supervisionReport,
|
||||
row.reformAdvice
|
||||
)
|
||||
}
|
||||
@@ -184,6 +185,7 @@ const tableStore = new TableStore({
|
||||
row.status,
|
||||
row.issueDetail,
|
||||
row.problemPath,
|
||||
row.supervisionReport,
|
||||
|
||||
row.reformAdvice,
|
||||
row.takeStep,
|
||||
@@ -208,6 +210,7 @@ const tableStore = new TableStore({
|
||||
row.status,
|
||||
row.issueDetail,
|
||||
row.problemPath,
|
||||
row.supervisionReport,
|
||||
row.reformAdvice,
|
||||
row.takeStep,
|
||||
row.reportPath,
|
||||
|
||||
@@ -21,6 +21,15 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="技术监督报告:" v-if="showFile1">
|
||||
<el-icon class="elView" v-if="supervisionReportDetail?.supervisionReportName">
|
||||
<View @click="openFile(supervisionReportDetail?.supervisionReportName)" />
|
||||
</el-icon>
|
||||
<a :href="supervisionReportDetail.supervisionReportPath" target="_blank">
|
||||
{{ supervisionReportDetail.supervisionReportName }}
|
||||
</a>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="问题附件:" v-if="showFile">
|
||||
<el-icon class="elView" v-if="problemDetail?.problemName">
|
||||
<View @click="openFile(problemDetail?.problemName)" />
|
||||
@@ -97,11 +106,16 @@ const form = ref({
|
||||
})
|
||||
//附件是否显示
|
||||
const showFile = ref(false)
|
||||
const showFile1 = ref(false)
|
||||
|
||||
const problemDetail = reactive({
|
||||
problemPath: '',
|
||||
problemName: ''
|
||||
})
|
||||
const supervisionReportDetail = reactive({
|
||||
supervisionReportPath: '',
|
||||
supervisionReportName: ''
|
||||
})
|
||||
|
||||
//处理成效报告
|
||||
const reportFilePath: any = ref('')
|
||||
@@ -123,6 +137,7 @@ const open = async (
|
||||
status: any,
|
||||
issueDetail: string,
|
||||
problemPath?: string,
|
||||
supervisionReport?: string,
|
||||
reformAdvice?: string,
|
||||
takeStep?: string,
|
||||
reportPath?: string
|
||||
@@ -158,6 +173,17 @@ const open = async (
|
||||
} else {
|
||||
showFile.value = false
|
||||
}
|
||||
if (supervisionReport) {
|
||||
let arrPath = supervisionReport.split(',')
|
||||
console.log("🚀 ~ arrPath:", arrPath)
|
||||
await getFileNameAndFilePath({ filePath: arrPath[0] }).then(res => {
|
||||
supervisionReportDetail.supervisionReportPath = res.data.url
|
||||
supervisionReportDetail.supervisionReportName = res.data.fileName
|
||||
})
|
||||
showFile1.value = true
|
||||
} else {
|
||||
showFile1.value = false
|
||||
}
|
||||
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user