This commit is contained in:
Yq 2025-04-15 15:35:38 +08:00
parent 7b7763d6d1
commit a9d33bef8f
15 changed files with 336 additions and 114 deletions

View File

@ -23,18 +23,11 @@
<!-- <script src="http://25.34.83.44:31001/sgepriamapsdk/libs/narimap.umd.min.js"></script>-->
<!-- <link rel="stylesheet" href="http://25.34.94.58/amap-platform-ui/examples/examples_PMS_i3/css/examples.css"/>-->
<!-- <link rel="stylesheet" href="http://25.34.94.58/sgepriamapsdk/css/narimap.umd.css"/>-->
<!-- <script src="http://25.34.94.58/amap-platform-ui/examples/examples_PMS_i3/configs/loadDemoConfig.js"></script>-->
<!-- <script src="http://25.34.94.58/sgepriamapsdk/libs/narimap.umd.min.js"></script>-->
<!--[if lt IE 11]>
<script>window.location.href = '/html/ie.html';</script><![endif]-->
<link rel='stylesheet' href='./videoComponent/v1.0.0/style/common.css'>

View File

@ -40,7 +40,11 @@ export const historyList=(payload)=>{
//图纸下拉
export const prjInfoDrawingUploadList=(payload)=>{
return $post(`/zhTEconomy/prjInfo2List` )
return $post(`/zhTEconomy/prjInfo2List`,payload )
}
//获取2.0项目图纸类型和出图内容
export const getDrawingTypeAndContent=(payload)=>{
return $post(`/zhTEconomy/getDrawingTypeAndContent`,payload )
}
//施工图下拉
export const prjInfoBudgetUploadList=(payload)=>{

View File

@ -1161,3 +1161,7 @@ export const uploadFile=(payload)=>{
export const extractFirstPage=()=>{
return $postBlob(`/extractFirstPage/extractFirstPage`)
}
export const checkMerge=(pay)=>{
return $post(`/zhUploadSlice/checkMerge`,pay)
}

View File

@ -37,7 +37,7 @@ router.beforeEach((to, from, next) => {
})
}).catch(err => {
useUserStore().logOut().then(() => {
ElMessage.error(err)
// ElMessage.error(err)
next({ path: '/' })
})
})

View File

@ -23,7 +23,7 @@ const useUserStore = defineStore(
login(username, password, code, uuid).then(res => {
setToken(res.token)
this.token = res.token
resolve()
resolve(res)
}).catch(error => {
reject(error)
})

View File

@ -32,7 +32,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: import.meta.env.VITE_APP_BASE_API,
// 超时
timeout: 120000
timeout: 600000
})
let whitePage=['uploadPic',
"zhDataMaintain/simpleRead",

View File

@ -158,6 +158,7 @@ const submit =()=> {
}
import {getOne} from "@/api/zx";
import {ElMessage} from "element-plus";
function handleLogin() {
proxy.$refs.loginRef.validate(valid => {
@ -183,10 +184,19 @@ function handleLogin() {
// url.value = window.URL.createObjectURL(blob);
// filePreviewModel.value.open();
// })
router.push({ path: redirect.value , state: {
where: "login",
}});
}).catch(() => {
console.log(res, 'res')
if(res.code!=200){
ElMessage.error(res.msg)
loading.value = false;
}else {
ElMessage.success(res.msg)
router.push({ path: redirect.value , state: {
where: "login",
}});
}
}).catch((err) => {
ElMessage.error(err)
loading.value = false;
//
if (captchaEnabled.value) {

View File

@ -46,6 +46,7 @@
<el-upload
ref="upload1"
action="#"
:before-upload="handleBeforeUpload"
:http-request="submitUpload1"
:on-change="handleFileChange2"
accept=".xls,.xlsx"
@ -286,23 +287,32 @@ const props = defineProps({
moduleName: String,
});
let upload1=ref(null)
const handleBeforeUpload=(file)=>{
console.log(file,'校验')
if(file.name.split('.').pop()=='xlsx'||file.name.split('.').pop()=='xls'){
return
}else {
ElMessage.error('请上传xlsx或xls格式的文件')
return false
}
}
const submitUpload1 = () => {
const formData = new FormData();
formData.append('file', file2.value);
// 使 fetch
importSafetyWeekly(formData).then(response => response)
.then(data => {
.then(res => {
//
upload1.value.clearFiles();
ElMessage.success(data.msg)
if(res.code==200){
ElMessage.success(res.msg)
}else{
ElMessage.error(res.msg)
}
file2.value=null
resetQuery()
}).then(res=>{
if(res.code==200){
ElMessage.success(res.msg)
}
})
})
return
};
let file2=ref(null)

View File

@ -44,6 +44,7 @@
ref="upload1"
action="#"
:http-request="submitUpload1"
:before-upload="handleBeforeUpload"
:on-change="handleFileChange1"
accept=".xls,.xlsx"
:show-file-list="false"
@ -470,24 +471,33 @@ const submitUpload = () => {
})
};
let upload1 = ref(null)
const handleBeforeUpload=(file)=>{
console.log(file,'校验')
if(file.name.split('.').pop()=='xlsx'||file.name.split('.').pop()=='xls'){
return
}else {
ElMessage.error('请上传xlsx或xls格式的文件')
return false
}
}
const submitUpload1 = () => {
console.log(1111)
const formData = new FormData();
formData.append('file', file1.value);
// 使 fetch
importCm1(formData).then(response => response)
.then(data => {
.then(res => {
//
if (res.code == 200) {
ElMessage.success(res.msg)
}else {
ElMessage.error(res.msg)
}
upload1.value.clearFiles();
ElMessage.success('上传成功')
file1.value = null
handleQuery()
}).then(res => {
if (res.code == 200) {
ElMessage.success(res.msg)
}
})
return
})
};
onMounted(() => {
getPrjListFun()

View File

@ -38,7 +38,7 @@
<!-- <el-button type="primary">选取文件</el-button>-->
<!-- </template>-->
<!-- </el-upload>-->
<el-button type="success" @click="isOpenDialog=true">新增</el-button>
<el-button type="success" @click="openXz">新增</el-button>
<!-- <el-button type="success" @click="isOpenDialog=true">物资上传</el-button>-->
</el-form-item>
@ -96,7 +96,7 @@
<el-form-item label="专业特长" prop="speciality">
<el-input :disabled="disabledP" v-model="ruleForm.speciality" />
</el-form-item>
<el-form-item label="年度培养计划" class="ei" style="display: flex;justify-content: flex-start" v-show="currentStatus=='编辑'||currentStatus=='新增'">
<el-form-item label="年度培养计划" class="ei" v-show="currentStatus=='修改'||currentStatus=='新增'">
<!-- <el-button type="primary" icon="UploadFilled" @click="importData">导入</el-button>-->
<div>
<el-upload
@ -125,7 +125,7 @@
</div>
</template>
</el-form-item>
<el-form-item label="上传头像" class="ei" style="display: flex;justify-content: flex-start" v-show="currentStatus=='编辑'||currentStatus=='新增'">
<el-form-item label="上传头像" class="ei" v-show="currentStatus=='修改'||currentStatus=='新增'">
<el-upload
v-model:file-list="fileList1"
ref="upload1"
@ -153,9 +153,8 @@
<el-form-item label="年度培养计划" prop="speciality" v-show="currentStatus=='详情'" @click="dFile">
{{currentOne.annualTrainingPlanName}}
</el-form-item>
<el-form-item label="图片" class="ei" v-show="currentStatus=='详情'" style="display: flex;justify-content: flex-start">
<img style="width: 200px;height:200px" :src="bobSrc" alt=""> <br>{{photoName}}
<el-form-item label="图片" class="ei" v-show="currentStatus=='详情'">
<img style="width: 200px;height:200px" :src="bobSrc" alt=""><br>
</el-form-item>
@ -201,7 +200,7 @@
<el-button
type="primary"
link
@click="editFun(scope.row,'编辑')"
@click="editFun(scope.row,'修改')"
>修改</el-button>
<el-button
type="primary"
@ -264,6 +263,10 @@ const ruleForm=reactive({
performanceEvaluation: '',
speciality: '',
})
const openXz=()=>{
isOpenDialog.value=true
currentStatus.value='新增'
}
const rules = reactive({
name: [{ required: true , message: '必填',}],
dept: [{required: true, message: '必填',}],
@ -298,6 +301,7 @@ let upLoadname=ref ('')
let isOpenDialog =ref(false)
const closeDialog=()=>{
disabledP.value=false
currentStatus.value=''
upLoadname.value=''
selectItemUpload.value={
value:'',
@ -318,7 +322,7 @@ const route=useRoute()
//
let fileList=ref([])
let fileList1=ref([])
let currentStatus=ref('编辑')
let currentStatus=ref('')
let currentOne=ref({})
const dFile=()=>{
console.log(currentOne.value,'..44')
@ -335,8 +339,8 @@ const dFile=()=>{
}
let annualTrainingPlanName=ref('')
let editFun = (rowData,pay) => {
if(pay=='编辑'){
currentStatus.value='编辑'
if(pay=='修改'){
currentStatus.value='修改'
}else if(pay=='详情'){
disabledP.value=true
currentStatus.value='详情'

View File

@ -18,9 +18,11 @@
选择文件{{fileList}}
</el-button>
</el-upload>
<!-- :disabled="fileList.length === 0"-->
<el-button
type="primary"
:disabled="fileList.length === 0"
:disabled="isDisabled"
:loading="uploading"
style="margin-top: 16px"
@click="handleUpload">
@ -34,9 +36,9 @@
</template>
<script setup>
import SparkMD5 from 'spark-md5'
import { upload,mergeApi } from "@/api/zx";
import { upload,mergeApi,checkMerge } from "@/api/zx";
import {ElMessage} from "element-plus";
let isDisabled=ref(true)
let uploadRef=ref(null)
//
const fileList = ref([]);
@ -72,6 +74,7 @@ const handleFileChange = (fileObj) => {
beforeUpload(fileObj.raw)
};
const beforeUpload = (file) => {
isDisabled.value=true
console.log('文件切片')
//
showSliceProgress.value = true;
@ -103,7 +106,7 @@ const beforeUpload = (file) => {
}
//
//
const chunkSize = 1024 * 1024 * 20;
const chunkSize = 1024 * 1024 * 10;
//
sliceCount.value = Math.ceil(file.size / chunkSize);
console.log('切了多少',sliceCount.value)
@ -153,6 +156,8 @@ const beforeUpload = (file) => {
fileChunkList.forEach((content) => {
content.hash = hash;
})
isDisabled.value=false
}
};
})
@ -164,22 +169,72 @@ let ind=0
//
const revertUp=(arr)=>{
for (const item of arr) {
let content = fileChunkList[item];
const formData = new FormData();
formData.append("file", content.chunk);
formData.append("hash", content.hash);
formData.append("filename", content.filename);
formData.append("seq", content.seq);
formData.append("type", content.type);
upload(formData).then(async(res) => {
if (res.code=='200') {
//
content.status = true;
const revertUp=async (arr)=>{
let num=0
if(arr.length!=0){
for (const item of arr) {
let content = fileChunkList[item-1];
const formData = new FormData();
formData.append("file", content.chunk);
formData.append("hash", content.hash);
formData.append("filename", content.filename);
formData.append("seq", content.seq);
formData.append("type", content.type);
let res = await upload(formData)
console.log(res)
// if(res.code==200){
// content.status = true;
// num++
// if(num==arr.length){
// checkMerge({
// hash: hash,
// type: filetype,
// filename: filename,
// sliceCount:sliceCount.value
// }).then(res=>{
// if(res.deSlice.length!=0){
// revertUp(res.deSlice)
// }else {
// merge();
// isDisabled.value=true
// }
// })
// }
// }
// let resp = await checkMerge({
// hash: hash,
// type: filetype,
// filename: filename,
// sliceCount:sliceCount.value
// })
// .then(res=>{
// if(res.deSlice.length!=0){
// revertUp(res.deSlice)
// }else {
// merge();
// isDisabled.value=true
// }
// })
}
let resp = await checkMerge({
hash: hash,
type: filetype,
filename: filename,
sliceCount:sliceCount.value
})
if(resp.deSlice.length!=0){
revertUp(resp.deSlice)
}else {
merge();
isDisabled.value=true
}
})
}else {
merge();
isDisabled.value=true
}
}
@ -246,18 +301,28 @@ const startUpload =async () => {
//
if (finishCount.value + errorCount.value < sliceCount.value) {
clearTimeout(inter)
inter = await setTimeout(() => {
console.log('100毫秒')
ind++
console.log('ind:',ind)
next();
}, 100);
// inter = await setTimeout(() => {
// console.log('100')
// ind++
// console.log('ind:',ind)
// next();
// }, 100);
ind++
console.log('ind:',ind)
next();
}
//
if (finishCount.value === sliceCount.value) {
let resetArr =[1,8,9]
merge();
checkMerge({
hash: hash,
type: filetype,
filename: filename,
sliceCount:sliceCount.value
}).then(res=>{
revertUp(res.deSlice)
})
}
}).catch(error => {
//
@ -281,8 +346,8 @@ const startUpload =async () => {
});
};
const merge = () => {
console.log('等待服务器合并文')
ElMessage.success('上传成功,等待服务器合并文件');
// console.log('')
// ElMessage.success('');
// hash
mergeApi({
hash: hash,
@ -290,14 +355,12 @@ const merge = () => {
filename: filename
}).then((res) => {
const data = res.data;
if (data.success) {
ElMessage.success(data.ElMessage);
//
console.log(data.content);
// ...
} else {
ElMessage.error(data.ElMessage)
if (res.code=='200'){
ElMessage.success(res.msg);
}else {
ElMessage.error(res.msg)
}
uploading.value = false;
}).catch(e => {
// ElMessage.error('');

View File

@ -38,6 +38,7 @@
style="margin-left: 20px;"
ref="upload"
action="#"
:before-upload="handleBeforeUpload"
:http-request="submitUpload"
:on-change="handleFileChange"
accept=".xls,.xlsx"
@ -96,8 +97,8 @@
placement="right"
>
<template #reference>
<div style="position: relative">
{{scope.row.index}}<img style="position: absolute;width: 18px;height: 18px;transform: translateY(5px)" src="@/assets/images/gthz.png">
<div style="display: flex;align-items: center;justify-content: center">
{{scope.row.index}}<img style="width: 18px;height: 18px;" src="@/assets/images/gthz.png">
</div>
</template>
</el-popover>
@ -441,6 +442,15 @@ const handleExceed=(files)=>{
upload.value.handleStart(file.value)
}
let upload=ref(null)
const handleBeforeUpload=(file)=>{
console.log(file,'校验')
if(file.name.split('.').pop()=='xlsx'||file.name.split('.').pop()=='xls'){
return
}else {
ElMessage.error('请上传xlsx或xls格式的文件')
return false
}
}
const submitUpload = () => {
const formData = new FormData();
formData.append('file', file.value);
@ -451,7 +461,6 @@ const submitUpload = () => {
ElMessage.success(response.msg)
}else {
ElMessage.error(response.msg)
}
//
upload.value.clearFiles();

View File

@ -66,7 +66,7 @@
</el-col>
<el-col :span="8" style="display: flex;justify-content:flex-end">
<el-form-item label="电压等级" prop="name" label-position="left" class="labelItem">
<el-form-item label="电压等级kV" prop="name" label-position="left" class="labelItem">
<!-- <el-input-->
<!-- v-model="name"-->
<!-- placeholder="请输入名称"-->
@ -198,8 +198,8 @@
<el-form-item class="labelItem">
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
<el-button type="success" @click="openDia(0)" v-hasPermi="['tzsc']">施工图上传</el-button>
<el-button type="primary" @click="openDia(1)" v-hasPermi="['sgtsc']">预算上传</el-button>
<el-button type="success" @click="openDia(0,'no')" v-hasPermi="['engineering:upload:drawing']">施工图上传</el-button>
<el-button type="primary" @click="openDia(1,'no')" v-hasPermi="['engineering:upload:budgetDrawing']">预算上传</el-button>
</el-form-item>
</el-col>
</el-row>
@ -210,14 +210,6 @@
box-shadow: 0px 0px 8px 1px rgba(180, 190, 199, 0.5);
border-radius: 6px;background-color: #fff;margin-bottom: 20px">
<el-form-item label="工程名称:" prop="name" label-position="left" class="labelItem">
<!-- <el-input-->
<!-- v-model="name"-->
<!-- placeholder="请输入名称"-->
<!-- clearable-->
<!-- style="width: 200px"-->
<!-- @keyup.enter="handleQuery"-->
<!-- />-->
<!-- -->
<el-select
v-model="upLoadname"
clearable
@ -235,6 +227,42 @@
/>
</el-select>
</el-form-item>
<el-form-item label="图纸类型:" prop="name" label-position="left" class="labelItem" v-show="isOrNoR=='no'">
<el-select
v-model="tzType"
clearable
filterable
:disabled="diaDisabled"
placeholder="请输入名称"
style="width: 500px"
>
<el-option
v-for="item in tzList"
:key="item.code"
:label="item.value"
@click.native="selectTzType(item)"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item label="出图内容:" prop="name" label-position="left" class="labelItem" v-show="isOrNoR=='no'">
<el-select
v-model="ctContent"
clearable
filterable
:disabled="diaDisabled"
placeholder="请输入名称"
style="width: 500px"
>
<el-option
v-for="item in ctList"
:key="item.code"
:label="item.value"
@click.native="selectCtContent(item)"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item label="更新原因:" label-position="left" class="labelItem" v-show="reDia==1">
<el-input
v-model="updateReason"
@ -282,6 +310,7 @@
v-for="(activity, index) in tzLine"
:key="index"
>
更新人{{ activity.upDateName }}&nbsp;&nbsp;
更新时间{{ activity.time }}
&nbsp;&nbsp;&nbsp;文件名
<el-link @click="downloadFile(activity)" type="primary"
@ -289,12 +318,12 @@
</el-link>
<span v-show="activity.upreason!=''&&activity.upreason!=null"><br><br>更新说明{{ activity.upreason }}</span>
<span><br><br>更新人{{ activity.upDateName }}</span>
<!-- <span><br><br>更新人{{ activity.upDateName }}</span>-->
<br><br> 审批人{{ activity.person }}&nbsp;&nbsp;&nbsp;审批时间{{ activity.upDateTime }} &nbsp;&nbsp;&nbsp;审批状态{{ activity.status }}
<span v-show="activity.approvereason!=''&&activity.approvereason!=null"> <br><br>审批说明{{
activity.approvereason
<span v-show="activity.spsm!=''&&activity.spsm!=null"> <br><br>审批说明{{
activity.spsm
}}</span>
@ -325,6 +354,7 @@
<el-table-column label="单位" width ="120" align="center" prop="buildUnitName" :show-overflow-tooltip="false"/>
<el-table-column label="工程名称" width ="150" align="center" prop="prjName" :show-overflow-tooltip="false"/>
<el-table-column label="电压等级" align="center" prop="voltageLevel"
width="100"
:show-overflow-tooltip="false">
<template #header="scope">
<div>电压等级</div>
@ -356,7 +386,7 @@
{{scope.row.drawingUpdateTime}}
</template>
</el-table-column>
<el-table-column label="图纸名称" width="120" align="center" prop="drawingName" :show-overflow-tooltip="true" >
<el-table-column label="图纸名称" width="120" align="center" prop="drawingName" :show-overflow-tooltip="false" >
<template #default="scope">
<div @click="downmloadFile(scope.row,0)"
style="
@ -415,7 +445,7 @@ text-decoration: underline;
/>
</el-table-column>
<el-table-column label="操作" align="center"
width="280"
min-width="280"
:show-overflow-tooltip="false">
<template #default="scope">
<div style="display:flex;justify-content: center;">
@ -491,7 +521,7 @@ import {
} from '@/api/jj/gctzgl'
// import { getOne } from '@/api/pageB/environmental/index.js'
// ,importCm,importCm1,deleteitem
import {defineProps, onMounted, ref} from 'vue';
import {defineProps, onMounted, ref, watch} from 'vue';
const {proxy} = getCurrentInstance();
@ -499,7 +529,7 @@ const props = defineProps({
pageType: String,
moduleName: String,
});
import {getVoltageList,getBuildUnit} from "../../../api/jj/gctzgl";
import {getVoltageList,getBuildUnit,getDrawingTypeAndContent} from "../../../api/jj/gctzgl";
let voltageList=ref([])
let voltage=ref('')
@ -892,15 +922,21 @@ const downmloadFile = (row, num) => {
// }
}
let diaType = ref(0)
const openDia = (pay) => {
let isOrNoR=ref('')
const openDia = (pay,is) => {
diaType.value = pay
isOrNoR.value=is
if (diaType.value == 0) {
prjInfoDrawingUploadList().then(res => {
prjInfoDrawingUploadList({
"uploadType": 0
}).then(res => {
prjOptions.value = res.data
isOpenDialog.value = true
})
} else if (diaType.value == 1) {
prjInfoDrawingUploadList().then(res => {
prjInfoDrawingUploadList({
"uploadType": 1
}).then(res => {
prjOptions.value = res.data
isOpenDialog.value = true
})
@ -943,6 +979,11 @@ let isOpenDialog = ref(false)
let isOpenTimeLine = ref(false)
const closeDialog = () => {
upLoadname.value = ''
tzType.value = ''
ctContent.value = ''
tzList.value = []
ctList.value = []
isOrNoR.value=''
diaDisabled.value = false
reDia.value = 0
selectItemUpload.value = {
@ -1165,10 +1206,50 @@ const setSelectItem = (item) => {
selectItem.value = JSON.parse(JSON.stringify(item))
selectName.value = item.value
}
let ctList=ref([])
let tzList=ref([])
let tzType=ref('')
let ctContent=ref('')
let typeAndContent=ref({})
watch(upLoadname, (newValue, oldValue) => {
if(upLoadname.value==''){
tzList.value=[]
tzType.value=''
ctContent.value=''
}
})
watch(tzType, (newValue, oldValue) => {
if(tzType.value==''){
ctList.value=[]
ctContent.value=''
}
})
const setSelectItemUpload = (item) => {
console.log(item)
selectItemUpload.value = JSON.parse(JSON.stringify(item))
upLoadname.value = item.value
getDrawingTypeAndContent({
"prjId":item.code,
"uploadType":diaType.value //0 1
}).then(res=>{
typeAndContent.value=res.data
tzList.value=res.data.type
})
}
const selectTzType=(item)=>{
tzType.value=item.value
if(item.value=='变电'){
ctList.value=typeAndContent.value.content['BD']
}else {
ctList.value=typeAndContent.value.content['XL']
}
}
const selectCtContent=(item)=>{
ctContent.value=item.value
}
const upload = ref(null);
const file = ref(null);
@ -1203,13 +1284,39 @@ const submitUpload = () => {
ElMessage.error('请选择一个工程')
return;
}
if (ctContent.value==''&&isOrNoR.value=='no') {
ElMessage.error('请选择出图内容')
return;
}
if (tzType.value==''&&isOrNoR.value=='no') {
ElMessage.error('请选择图纸类型')
return;
}
const formData = new FormData();
formData.append('file', file.value);
console.log(rowData1.value,'rowData1.value')
if(diaType.value==0){
formData.append('drawingId', rowData1.value.drawingId);
if(isOrNoR.value=='no'){
formData.append('drawingId', selectItemUpload.value.code);
formData.append('drawingType',tzType.value);
formData.append('drawingContent', ctContent.value);
}else {
formData.append('drawingId', rowData1.value.drawingId);
formData.append('drawingType','');
formData.append('drawingContent','');
}
}else if(diaType.value==1){
formData.append('budgetId', rowData1.value.budgetDrawingId);
if(isOrNoR.value=='no'){
formData.append('budgetId', selectItemUpload.value.code);
formData.append('drawingType',tzType.value);
formData.append('drawingContent', ctContent.value);
}else {
formData.append('budgetId', rowData1.value.budgetDrawingId);
formData.append('drawingType','');
formData.append('drawingContent','');
}
}
if (reDia.value == 1) {
formData.append('updateReason', updateReason.value);

View File

@ -66,7 +66,7 @@
</el-col>
<el-col :span="8" style="display: flex;justify-content:flex-end">
<el-form-item label="电压等级" prop="name" label-position="left" class="labelItem">
<el-form-item label="电压等级kV" prop="name" label-position="left" class="labelItem">
<!-- <el-input-->
<!-- v-model="name"-->
<!-- placeholder="请输入名称"-->
@ -204,20 +204,21 @@
</el-form>
<el-dialog v-model="isOpenTimeLine" width="30vw" @close="closeTimeLine" :title="titleN" center>
<el-dialog v-model="isOpenTimeLine" width="30vw" @close="closeTimeLine" :title="titleN">
<div style="height: 500px;overflow-y: auto;position: relative;">
<el-timeline style="height:380px;overflow: scroll">
<el-timeline style="height:400px;overflow-y: scroll">
<el-timeline-item
v-for="(activity, index) in tzLine"
:key="index"
>
更新人{{ activity.upDateName }}&nbsp;&nbsp;
更新时间{{ activity.time }} &nbsp;&nbsp;&nbsp;
文件名
<el-link @click="downloadFile(activity)" type="primary" style="border-bottom: 1px solid #0E9CFF">
{{ activity.name }}
</el-link>
<span v-show="activity.upreason!=''&&activity.upreason!=null"><br><br>更新说明{{ activity.upreason }}</span>
<span><br><br>更新人{{ activity.upDateName }}</span>
<span></span>
<br><br> 审批人{{ activity.person }}&nbsp;&nbsp;&nbsp;审批时间{{ activity.upDateTime }} &nbsp;&nbsp;&nbsp;审批状态{{ activity.status }}
<!-- <span v-show="activity.approvereason!=''&&activity.approvereason!=null"> <br><br>审批说明{{-->
<!-- activity.approvereason-->
@ -260,14 +261,14 @@
<el-table-column label="工程名称" width="150" align="center" prop="prjName" :show-overflow-tooltip="false"/>
<el-table-column label="电压等级(kV)" align="center" prop="voltageLevel" :show-overflow-tooltip="false">
<el-table-column label="电压等级(kV)" width="80" align="center" prop="voltageLevel" :show-overflow-tooltip="false">
<template #header="scope">
<div>电压等级</div>
<div>(kV)</div>
</template>
</el-table-column>
<el-table-column label="图纸类型" width="80" align="center" prop="drawingType" :show-overflow-tooltip="false"/>
<el-table-column label="出图内容" width ="260" align="center" prop="drawingContent" :show-overflow-tooltip="false"/>
<el-table-column label="出图内容" width="280" align="center" prop="drawingContent" :show-overflow-tooltip="false"/>
@ -293,7 +294,7 @@
</template>
</el-table-column>
<el-table-column label="图纸名称" width="120" align="center"
prop="drawingName" :show-overflow-tooltip="true">
prop="drawingName" :show-overflow-tooltip="false">
<template #default="scope">
<div @click="downmloadFile(scope.row,0)"
style="
@ -346,7 +347,7 @@ text-decoration: underline;
:show-overflow-tooltip="false" width="80"/>
</el-table-column>
<el-table-column label="操作" align="center"
width="280"
min-width="280"
:show-overflow-tooltip="false">
<template #default="scope">
<div style="display:flex;justify-content: center;">
@ -946,8 +947,12 @@ const approveH = (pay) => {
console.log(res)
if (res.code == 200) {
ElMessage.success(res.msg)
resetQuery()
} else {
ElMessage.error(res.msg)
resetQuery()
}
})
} else if (statusApprove.value == 1) {
@ -960,9 +965,12 @@ const approveH = (pay) => {
console.log(res)
if (res.code == 200) {
ElMessage.success(res.msg)
resetQuery()
} else {
ElMessage.error(res.msg)
resetQuery()
}
})
}

View File

@ -58,15 +58,15 @@ export default defineConfig(({ mode, command }) => {
'/sgtjzhzxsp-api': {
//测试服务器
// target: "http://117.15.170.46:20241",
//文慧
// target: "http://192.168.3.85:20241",
//志杰
// target: "http://192.168.3.200:20241",
//张新
// target: "http://192.168.3.210:20241",
//测试
// target: "http://192.168.133.127:20241",
target: "http://192.168.133.127:20241",
// target: "http://192.168.133.127:20241",
// 相斌
target: "http://192.168.3.33:20241",
// target: "http://192.168.3.33:20241",
changeOrigin: true,
// target: 'http://192.168.3.114:20241',//广瑞
rewrite: (p) => p.replace(/^\/sgtjzhzxsp-api/, '')