|
|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
<el-form :model="jsInfos" ref="form" label-width="120px">
|
|
|
-
|
|
|
+
|
|
|
<el-card class="box-card">
|
|
|
<div slot="header" class="clearfix">
|
|
|
<span class="section-title">基本信息</span>
|
|
|
@@ -115,11 +115,11 @@
|
|
|
:before-upload="beforeVideoUpload"
|
|
|
:show-file-list="false"
|
|
|
>
|
|
|
- <video
|
|
|
+ <video
|
|
|
class="video-preview"
|
|
|
- v-if="jsInfos.cVideo"
|
|
|
- :src="getVideoUrl(jsInfos.cVideo)"
|
|
|
- controls
|
|
|
+ v-if="jsInfos.cVideo"
|
|
|
+ :src="getVideoUrl(jsInfos.cVideo)"
|
|
|
+ controls
|
|
|
></video>
|
|
|
<i v-else class="el-icon-plus"></i>
|
|
|
<div class="el-upload__tip" slot="tip">支持MP4、AVI等格式,大小不超过100MB</div>
|
|
|
@@ -133,7 +133,7 @@
|
|
|
<div slot="header" class="clearfix">
|
|
|
<span class="section-title">资质与详细信息</span>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="评分">
|
|
|
@@ -227,28 +227,28 @@
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="承诺书">
|
|
|
- <FileUpload
|
|
|
+ <FileUpload
|
|
|
:fileSize="10"
|
|
|
:fileType="['pdf', 'jpg', 'jpeg', 'png']"
|
|
|
- v-model="jsInfos.commitment"
|
|
|
+ v-model="jsInfos.commitment"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="承诺录音">
|
|
|
- <FileUpload
|
|
|
+ <FileUpload
|
|
|
:fileSize="10"
|
|
|
:fileType="['mp3', 'wav', 'wma']"
|
|
|
- v-model="jsInfos.recording"
|
|
|
+ v-model="jsInfos.recording"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="承诺录像">
|
|
|
- <FileUpload
|
|
|
+ <FileUpload
|
|
|
:fileSize="50"
|
|
|
:fileType="['mp4', 'mov', 'mkv', 'wmv']"
|
|
|
- v-model="jsInfos.videoRecording"
|
|
|
+ v-model="jsInfos.videoRecording"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -257,9 +257,9 @@
|
|
|
|
|
|
<div class="footer-actions">
|
|
|
<el-button type="info" icon="el-icon-chat-dot-round" @click="addComplaintShow">添加评论</el-button>
|
|
|
-
|
|
|
- <el-button
|
|
|
- :type="jsInfos.nStatus2 == -1 ? 'success' : 'warning'"
|
|
|
+
|
|
|
+ <el-button
|
|
|
+ :type="jsInfos.nStatus2 == -1 ? 'success' : 'warning'"
|
|
|
@click="work"
|
|
|
>
|
|
|
{{ jsInfos.nStatus2 == -1 ? '上 岗' : '下 岗' }}
|
|
|
@@ -270,8 +270,8 @@
|
|
|
<el-button type="danger" icon="el-icon-close" @click="returnJs(jsInfos.id)">退 回</el-button>
|
|
|
</template>
|
|
|
|
|
|
- <el-button
|
|
|
- :type="jsInfos.nTong == 3 ? 'success' : 'danger'"
|
|
|
+ <el-button
|
|
|
+ :type="jsInfos.nTong == 3 ? 'success' : 'danger'"
|
|
|
@click="blacklist"
|
|
|
>
|
|
|
{{ jsInfos.nTong == 3 ? '恢 复' : '拉 黑' }}
|
|
|
@@ -340,7 +340,7 @@ export default {
|
|
|
},
|
|
|
options: [], // 城市/部门列表
|
|
|
dialogFormVisible: false,
|
|
|
-
|
|
|
+
|
|
|
// 主信息对象
|
|
|
jsInfos: {
|
|
|
cImgList: [], // 确保初始化为数组或若依组件需要的格式
|
|
|
@@ -348,13 +348,13 @@ export default {
|
|
|
nStatus2: 0,
|
|
|
nTong: 0,
|
|
|
},
|
|
|
-
|
|
|
+
|
|
|
addr: { lat: "", lng: "" }, // 地图回显坐标
|
|
|
newAddress: "太原", // 地图默认城市
|
|
|
-
|
|
|
+
|
|
|
projectList: [], // 所有项目
|
|
|
jsProjectList: [], // 当前选中的项目对象
|
|
|
-
|
|
|
+
|
|
|
complainForm: {
|
|
|
cNickName: "匿名评论",
|
|
|
nStar: 5,
|
|
|
@@ -383,7 +383,7 @@ export default {
|
|
|
// 视频上传前的校验
|
|
|
beforeVideoUpload(file) {
|
|
|
const isVideo = file.type.includes("video/");
|
|
|
- const isLtSize = file.size / 1024 / 1024 < 100;
|
|
|
+ const isLtSize = file.size / 1024 / 1024 < 100;
|
|
|
|
|
|
if (!isVideo) {
|
|
|
this.$message.error("只能上传视频文件!");
|
|
|
@@ -401,7 +401,7 @@ export default {
|
|
|
formData.append("video", file);
|
|
|
uploadvideo(formData).then((response) => {
|
|
|
// 保存相对路径,显示时处理
|
|
|
- this.$set(this.jsInfos, 'cVideo', response.fileName);
|
|
|
+ this.$set(this.jsInfos, 'cVideo', response.fileName);
|
|
|
this.$message.success("视频上传成功");
|
|
|
});
|
|
|
},
|
|
|
@@ -442,13 +442,13 @@ export default {
|
|
|
getJsInfo(id) {
|
|
|
getJs({ id: id }).then((response) => {
|
|
|
const data = response.data;
|
|
|
-
|
|
|
+
|
|
|
// 1. 处理地图信息
|
|
|
this.addr = {
|
|
|
lat: data.latitude,
|
|
|
lng: data.longitude
|
|
|
};
|
|
|
-
|
|
|
+
|
|
|
// 2. 处理项目回显
|
|
|
this.jsProjectList = [];
|
|
|
if (data.projects && data.projects.length > 0) {
|
|
|
@@ -456,7 +456,7 @@ export default {
|
|
|
this.jsProjectList.push({ cTitle: item.cTitle, cId: item.cId });
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 3. 赋值给主对象
|
|
|
// 注意:ImageUpload组件通常需要逗号分隔的字符串或数组(取决于版本),若依默认通常存相对路径
|
|
|
// 这里假设后端返回的是相对路径,如果不是,ImageUpload会自动处理显示,但v-model最好绑定相对路径
|
|
|
@@ -483,7 +483,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
-
|
|
|
+
|
|
|
addComplaintShow() {
|
|
|
this.complainForm.name = this.jsInfos.cName;
|
|
|
this.complainForm.cId = this.jsInfos.cId;
|
|
|
@@ -527,18 +527,18 @@ export default {
|
|
|
// 处理项目ID集合
|
|
|
const projectIds = this.jsProjectList.map(item => item.cId).join(",");
|
|
|
this.jsInfos.cBhList = projectIds;
|
|
|
-
|
|
|
+
|
|
|
// ImageUpload 组件已经通过 v-model 更新了 jsInfos 中的图片字段
|
|
|
// 注意:如果 ImageUpload 返回的是数组,而后端需要逗号分隔字符串,这里需要转换
|
|
|
// 假设 cImgList 和 cSfzImg 是数组,其他单图是字符串
|
|
|
let submitData = { ...this.jsInfos };
|
|
|
-
|
|
|
+
|
|
|
// 如果后端要求图片是字符串而不是数组,进行转换(视若依版本而定,通用处理如下)
|
|
|
if(Array.isArray(submitData.cImgList)) {
|
|
|
- submitData.cImgList = submitData.cImgList.join(',');
|
|
|
+ submitData.cImgList = submitData.cImgList;
|
|
|
}
|
|
|
if(Array.isArray(submitData.cSfzImg)) {
|
|
|
- submitData.cSfzImg = submitData.cSfzImg.join(',');
|
|
|
+ submitData.cSfzImg = submitData.cSfzImg;
|
|
|
}
|
|
|
|
|
|
updateJs(submitData).then((res) => {
|
|
|
@@ -615,4 +615,4 @@ export default {
|
|
|
bottom: 0;
|
|
|
z-index: 10;
|
|
|
}
|
|
|
-</style>
|
|
|
+</style>
|