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