Ver código fonte

fix: 隐藏二期修改

master
yxhc 3 semanas atrás
pai
commit
a94ec296a4
6 arquivos alterados com 117 adições e 32 exclusões
  1. +14
    -0
      src/App.vue
  2. +1
    -0
      src/main.js
  3. +11
    -7
      src/pages/declareManage/purchaseResults/fillPurchasingResult/index.vue
  4. +28
    -25
      src/pages/toDoCenter/components/auditDialog.vue
  5. +1
    -0
      src/pages/toDoCenter/handleDuringExamine/index.vue
  6. +62
    -0
      src/utils/updater.js

+ 14
- 0
src/App.vue Ver arquivo

@@ -1,6 +1,20 @@
<script setup name="App">
// import store from '@/store'
// console.log(store.menuStore.menuArr)
// import Updater from '@/utils/updater'
// import { ElMessageBox } from 'element-plus'
//
// const up = new Updater({
// timer: 20000
// })
// // 更新通知
// up.on('update', () => {
// up.stop()
// ElMessageBox.confirm('检测到有新版本,是否更新?更新会重新加载页面,如果您有未提交的表单数据,请先保存!', '提示', {}).then(() => {
// location.reload()
// })
// })

</script>

<template>


+ 1
- 0
src/main.js Ver arquivo

@@ -43,3 +43,4 @@ instance
}
})
.mount('#app')


+ 11
- 7
src/pages/declareManage/purchaseResults/fillPurchasingResult/index.vue Ver arquivo

@@ -5,6 +5,7 @@ import store from '@/store'
import { useRouter, useRoute } from 'vue-router'
import { submitResult } from '@/http/apis/declareMange/purchaseResults'
import { dictionary } from '@/http/apis/projectCollection/projectCollectionEnter'
import { getProjectDetail } from '@/http/apis/declareMange'

const uploadUrl = store.dictStore.uploadUrl,
{ proxy } = getCurrentInstance(),
@@ -46,7 +47,7 @@ const formRef = ref(),
bidDoc: [],
acceptanceLetter: []
}],
devChangeCode: ''
developCode: ''
}),
submitLoading = ref(false),
submit = async (formEl) => {
@@ -66,7 +67,7 @@ const formRef = ref(),
acceptanceLetter: i.acceptanceLetter && JSON.stringify(changFilesParam(i.acceptanceLetter))
}
}),
devChangeCode: formData.value.devChangeCode
developCode: formData.value.developCode
}
try {
await submitResult(postData)
@@ -98,7 +99,10 @@ const formRef = ref(),
dictionaryList = ref([])
onMounted(async () => {
dictionaryList.value = (await dictionary()).data
const data = await getProjectDetail({ id: route.query.id })
formData.value.developCode = data.data.developCode
})

</script>
<template>
<div class="fillPurchasingResult footerPage">
@@ -111,11 +115,11 @@ onMounted(async () => {
label-suffix=":"
scroll-to-error
>
<el-card class="w-full mb-16">
<el-form-item label="发改编码" :rules="[{ required: true, message: '请输入' }]" prop="devChangeCode">
<el-input v-model="formData.devChangeCode" placeholder="请输入" />
</el-form-item>
</el-card>
<!-- <el-card class="w-full mb-16">-->
<!-- <el-form-item label="发改编码" :rules="[{ required: true, message: '请输入' }]" prop="developCode">-->
<!-- <el-input v-model="formData.developCode" placeholder="请输入" />-->
<!-- </el-form-item>-->
<!-- </el-card>-->
<el-card v-for="(item,index) in formData.sections" :key="index" class="w-full mb-16">
<template #header>
<div class="flex justify-between">


+ 28
- 25
src/pages/toDoCenter/components/auditDialog.vue Ver arquivo

@@ -122,7 +122,10 @@ watch(
async val => {
if (!val) {
formRef.value.resetFields()
form.value = {}
form.value = {
attachments: [],
opinions: []
}
}
}
)
@@ -231,30 +234,30 @@ watch(
</el-col>
</template>

<el-col v-if="projectDetail&&projectDetail.status===20004" :span="24">
<el-form-item
:label="`终验意见`"
prop="opinions"
>
<el-upload
v-model:file-list="form.opinions"
class="w-full"
:action="uploadUrl"
:on-success="res => handleFileSuccess(res, form.opinions)"
:on-error="handleFileError"
:before-upload="file=>fileFormatVerification(file, {types: fileTypes})"
:accept="fileTypes.map(i=>`.${i}`).join(',')"
multiple
:limit="10"
:on-preview="handleFilePreview"
>
<el-button type="primary" class="mr-4">上传附件</el-button>
<template #tip>
<div class="el-upload__tip">支持{{ fileDesc }}文件</div>
</template>
</el-upload>
</el-form-item>
</el-col>
<!-- <el-col v-if="projectDetail&&projectDetail.status===20004" :span="24">-->
<!-- <el-form-item-->
<!-- :label="`终验意见`"-->
<!-- prop="opinions"-->
<!-- >-->
<!-- <el-upload-->
<!-- v-model:file-list="form.opinions"-->
<!-- class="w-full"-->
<!-- :action="uploadUrl"-->
<!-- :on-success="res => handleFileSuccess(res, form.opinions)"-->
<!-- :on-error="handleFileError"-->
<!-- :before-upload="file=>fileFormatVerification(file, {types: fileTypes})"-->
<!-- :accept="fileTypes.map(i=>`.${i}`).join(',')"-->
<!-- multiple-->
<!-- :limit="10"-->
<!-- :on-preview="handleFilePreview"-->
<!-- >-->
<!-- <el-button type="primary" class="mr-4">上传附件</el-button>-->
<!-- <template #tip>-->
<!-- <div class="el-upload__tip">支持{{ fileDesc }}文件</div>-->
<!-- </template>-->
<!-- </el-upload>-->
<!-- </el-form-item>-->
<!-- </el-col>-->

<el-col :span="24">
<el-form-item


+ 1
- 0
src/pages/toDoCenter/handleDuringExamine/index.vue Ver arquivo

@@ -391,6 +391,7 @@ function rejectYear () {
</el-button>
<el-button @click="router.go(-1)">返回</el-button>
<el-button
v-if="false"
plain
type="danger"
@click="rejectYear"


+ 62
- 0
src/utils/updater.js Ver arquivo

@@ -0,0 +1,62 @@
export default class Updater {
constructor (options) {
this.oldScript = [] // 存储初始的 script 哈希信息
this.newScript = [] // 存储新的 script 哈希信息
this.dispatch = {} // 一个小型的发布/订阅系统,用于通知用户更新
this.interval = null
this.init() // 初始化
this.timing(options?.timer) // 轮询
}

async init () {
const html = await this.getHtml()
this.oldScript = this.parserScript(html)
}

async getHtml () {
const html = await fetch('/').then(res => res.text()) // 获取 index.html
return html
}

parserScript (html) {
const reg = new RegExp(/<script(?:\s+[^>]*)?>(.*?)<\/script\s*>/ig) // 匹配 script 标签的正则表达式
return html.match(reg) // 匹配 script 标签
}

// 发布/订阅通知
on (key, fn) {
(this.dispatch[key] || (this.dispatch[key] = [])).push(fn)
return this
}

compare (oldArr, newArr) {
const base = oldArr.length
const arr = Array.from(new Set(oldArr.concat(newArr)))
// 如果新旧数组长度相同,则表示没有更新
if (arr.length === base) {
this.dispatch['no-update'].forEach(fn => {
fn()
})
} else {
// 否则通知有更新
this.dispatch['update'].forEach(fn => {
fn()
})
}
}

timing (time = 10000) {
// 轮询
this.interval = setInterval(async () => {
const newHtml = await this.getHtml()
this.newScript = this.parserScript(newHtml)
this.compare(this.oldScript, this.newScript)
}, time)
}

start () {
}
stop () {
clearInterval(this.interval)
}
}

Carregando…
Cancelar
Salvar