Browse Source

文件上传字段名

feature
mk 1 year ago
parent
commit
529852f821
  1. 29
      src/views/modules/shequzhili/event/cpts/event-info.vue
  2. 14
      src/views/modules/shequzhili/event/cpts/process-form-assign.vue
  3. 87
      src/views/modules/shequzhili/event/cpts/process-form-complete.vue
  4. 44
      src/views/modules/shequzhili/event/cpts/process-form-contact.vue
  5. 24
      src/views/modules/shequzhili/event/cpts/process-form-process.vue
  6. 9
      src/views/modules/shequzhili/event/cpts/process-form.vue

29
src/views/modules/shequzhili/event/cpts/event-info.vue

@ -20,7 +20,7 @@
height="30px" alt=""> {{ pageTypeCopy === 'assign' ? '指派' : '办理' }} height="30px" alt=""> {{ pageTypeCopy === 'assign' ? '指派' : '办理' }}
</div> </div>
<process-form ref="ref_processinfo_dispose" :source="source" :eventId="eventId" <process-form ref="ref_processinfo_dispose" :source="source" :eventId="eventId"
:eventDetailData="eventDetailData" :pageType="pageTypeCopy"></process-form> :eventDetailData="eventDetailData" :pageType="pageTypeCopy" :replayDetailObj="replayDetailObj"></process-form>
<div class="div-btn"> <div class="div-btn">
<el-button size="small" @click="handleClose">关闭</el-button> <el-button size="small" @click="handleClose">关闭</el-button>
<el-button style="margin-left: 20px" type="primary" size="small" <el-button style="margin-left: 20px" type="primary" size="small"
@ -161,7 +161,7 @@
</template> </template>
<script> <script>
import { requestPost } from "@/js/dai/request"; import { requestPost,requestGet } from "@/js/dai/request";
import { Loading } from "element-ui"; // Loading import { Loading } from "element-ui"; // Loading
import foldText from "@/views/components/foldText"; import foldText from "@/views/components/foldText";
import projectInfoOrigin from "../../xiangmu/cpts/project-info"; import projectInfoOrigin from "../../xiangmu/cpts/project-info";
@ -201,7 +201,8 @@ function iniData() {
sourceType: "", sourceType: "",
level: '' level: '',
replayDetailObj:{},
}; };
} }
@ -252,10 +253,13 @@ export default {
// this.getApiData(); // this.getApiData();
}, },
}, },
created() { }, created() {
if(this.pageType === 'check'){
this.replayDetail()
}
},
mounted() { mounted() {
this.pageTypeCopy = this.pageType; this.pageTypeCopy = this.pageType;
console.log(this.pageType, 'seeeeeeeeeeeeeeeeee');
this.getProjectProcess(); this.getProjectProcess();
if (this.eventId) { if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData)); this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
@ -352,7 +356,6 @@ export default {
if (this.pageTypeCopy === "add") { if (this.pageTypeCopy === "add") {
this.eventInfo = this.$refs.ref_add.resetData(); this.eventInfo = this.$refs.ref_add.resetData();
} }
this.$emit("handleClose"); this.$emit("handleClose");
}, },
handleToProject(type) { handleToProject(type) {
@ -374,11 +377,9 @@ export default {
}, },
async handleToIssue() { async handleToIssue() {
const url = "/governance/manage/votingissuedetail"; const url = "/governance/manage/votingissuedetail";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
issueId: this.eventDetailCopy.operationId, issueId: this.eventDetailCopy.operationId,
}); });
if (code === 0) { if (code === 0) {
this.issueDetailData = { ...data }; this.issueDetailData = { ...data };
} else { } else {
@ -396,7 +397,17 @@ export default {
this.getProjectProcess(); this.getProjectProcess();
this.pageTypeCopy = "info"; this.pageTypeCopy = "info";
}, },
async replayDetail(){
console.log(this.eventDetailCopy);
const url = `/governance/icEvent/replayDetail/${this.eventDetailData.icEventId}`;
const { data, code, msg } = await requestGet(url);
if (code === 0) {
this.replayDetailObj = { ...data };
console.log(this.replayDetailObj,'seeeee');
} else {
this.$message.error(msg);
}
},
// //
startLoading() { startLoading() {
loading = Loading.service({ loading = Loading.service({

14
src/views/modules/shequzhili/event/cpts/process-form-assign.vue

@ -283,21 +283,21 @@ export default {
const mp3Array = ["mp3"]; const mp3Array = ["mp3"];
if (picArray.indexOf(fileType) > -1) { if (picArray.indexOf(fileType) > -1) {
file.attachmentFormat = "image"; file.format = "image";
} else if (videoarray.indexOf(fileType) > -1) { } else if (videoarray.indexOf(fileType) > -1) {
file.attachmentFormat = "video"; file.format = "video";
} else if (docArray.indexOf(fileType) > -1) { } else if (docArray.indexOf(fileType) > -1) {
file.attachmentFormat = "doc"; file.format = "doc";
} else if (mp3Array.indexOf(fileType) > -1) { } else if (mp3Array.indexOf(fileType) > -1) {
file.attachmentFormat = "voice"; file.format = "voice";
} }
file.url = res.data.url; file.url = res.data.url;
file.type = fileType; file.type = fileType;
file.attachmentName = file.name; file.name = file.name;
file.attachmentType = file.type; file.type = file.type;
file.attachmentUrl = file.url; file.url = file.url;
this.fileList.push(file); this.fileList.push(file);
} else this.$message.error(res.msg); } else this.$message.error(res.msg);

87
src/views/modules/shequzhili/event/cpts/process-form-complete.vue

@ -12,7 +12,7 @@
<el-form-item label="上传录音" label-width="118px" :class="{ 'form-item': source === 'visiual' }"> <el-form-item label="上传录音" label-width="118px" :class="{ 'form-item': source === 'visiual' }">
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" accept=".mp3" <el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" accept=".mp3"
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleAudioSuccess" :data="{ customerId: customerId }" :show-file-list="true" :on-success="handleAudioSuccess"
:on-remove="handleAudioRemove" :before-upload="beforeAudioUpload"> :on-remove="handleAudioRemove" :before-upload="beforeAudioUpload" :file-list="audioList">
<el-button type="primary" :disabled="pageType === 'check'">上传音频<i <el-button type="primary" :disabled="pageType === 'check'">上传音频<i
class="el-icon-upload el-icon--right"></i></el-button> class="el-icon-upload el-icon--right"></i></el-button>
</el-upload> </el-upload>
@ -21,7 +21,7 @@
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" <el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr"
accept=".jpg,.png,.jpeg" accept=".jpg,.png,.jpeg"
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleImgSuccess" :data="{ customerId: customerId }" :show-file-list="true" :on-success="handleImgSuccess"
:on-remove="handleImgRemove" :before-upload="beforeImgUpload"> :on-remove="handleImgRemove" :before-upload="beforeImgUpload" :file-list="imgList">
<el-button type="primary" :disabled="pageType === 'check'">上传图片<i <el-button type="primary" :disabled="pageType === 'check'">上传图片<i
class="el-icon-upload el-icon--right"></i></el-button> class="el-icon-upload el-icon--right"></i></el-button>
</el-upload> </el-upload>
@ -136,17 +136,17 @@
</el-form-item> </el-form-item>
</div> </div>
<div class="item"> <div class="item">
<el-form-item label="是否配合回访" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="mmm"> <el-form-item label="是否配合回访" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="cooperate">
<el-select v-model.trim="formData.mmm" clearable class="item_width_4"> <el-select v-model.trim="formData.cooperate" clearable class="item_width_4">
<el-option v-for="item in coordinateList" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in coordinateList" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<div class="item"> <div class="item">
<el-form-item label="服务满意度" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="nnn"> <el-form-item label="服务满意度" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="satisfaction">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-select v-model.trim="formData.nnn" clearable class="item_width_4"> <el-select v-model.trim="formData.satisfaction" clearable class="item_width_4">
<el-option v-for="item in satisfactionType" :key="item.value" :label="item.label" :value="item.value" <el-option v-for="item in satisfactionType" :key="item.value" :label="item.label" :value="item.value"
@click.native="handelChangeSatisfaction(item.value)"> @click.native="handelChangeSatisfaction(item.value)">
</el-option> </el-option>
@ -199,8 +199,8 @@
<div class="item"> <div class="item">
<el-form-item label="上传图片" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="files"> <el-form-item label="上传图片" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="files">
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" <el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr"
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleImgSuccess" :data="{ customerId: customerId }" :show-file-list="true" :on-success="handleExamineImgSuccess"
:on-remove="handleImgRemove" :before-upload="beforeImgUpload"> :on-remove="handleExamineImgRemove" :before-upload="beforeImgUpload" accept=".jpg,.png,.jpeg">
<el-button type="primary" >上传图片<i <el-button type="primary" >上传图片<i
class="el-icon-upload el-icon--right"></i></el-button> class="el-icon-upload el-icon--right"></i></el-button>
</el-upload> </el-upload>
@ -243,8 +243,8 @@ function iniFmData() {
returnTime: '',//访 returnTime: '',//访
loseContact: '',//0 1 loseContact: '',//0 1
putThrough: '',// 0 1 putThrough: '',// 0 1
mmm: '',//访0 1 cooperate: '',//访0 1
nnn: '',//0 1 2 satisfaction: '',//0 1 2
dissatisfyReason: '',// dissatisfyReason: '',//
visitComments: '',//访 visitComments: '',//访
examine: null,// examine: null,//
@ -292,15 +292,16 @@ export default {
visitComments: [ visitComments: [
{ required: true, message: "回访意见不能为空", trigger: "blur" }, { required: true, message: "回访意见不能为空", trigger: "blur" },
], ],
mmm: [ cooperate: [
{ required: true, message: "请选择是否配合回访", trigger: "blur" }, { required: true, message: "请选择是否配合回访", trigger: "blur" },
], ],
nnn: [ satisfaction: [
{ required: true, message: "请选择服务满意度", trigger: "blur" }, { required: true, message: "请选择服务满意度", trigger: "blur" },
], ],
}, },
imgList: [], imgList: [],
audioList: [] audioList: [],
examineImgList:[]
}; };
}, },
components: {}, components: {},
@ -326,8 +327,25 @@ export default {
type: String, type: String,
default: "manage", default: "manage",
}, },
replayDetailObj:{
type: Object,
default() {
return {};
},
}
},
watch: {
"replayDetailObj": function (newVal,oldVal) {
console.log(newVal,'bianle');
if(this.pageType === 'check'){
this.formData = newVal;
if(this.formData.internalFile){
this.imgList = this.formData.internalFile.filter(item=>item.type==='image')
this.audioList = this.formData.internalFile.filter(item=>item.type==='voice')
}
}
},
}, },
watch: {},
created() { }, created() { },
mounted() { mounted() {
@ -357,11 +375,11 @@ export default {
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.audioList.push({ this.audioList.push({
attachmentFormat: file.name.split(".").pop(), format: file.name.split(".").pop(),
attachmentName: file.name, name: file.name,
size: file.size, size: file.size,
attachmentType: file.raw.type, type: file.raw.type,
attachmentUrl: res.data.url, url: res.data.url,
}); });
console.log(this.formData.files); console.log(this.formData.files);
} else { } else {
@ -389,11 +407,36 @@ export default {
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.imgList.push({ this.imgList.push({
attachmentFormat: file.name.split(".").pop(), format: file.name.split(".").pop(),
attachmentName: file.name, name: file.name,
size: file.size,
type: file.raw.type,
url: res.data.url,
});
console.log(this.formData.files);
} else {
this.$message.error(res.msg);
}
},
handleExamineImgRemove(file) {
console.log(file);
let index = this.examineImgList.findIndex(
(item) => item.url == file.response.data.url
);
this.examineImgList.splice(index, 1);
console.log(this.examineImgList);
},
handleExamineImgSuccess(res, file, fileList) {
console.log("res.data.url", file);
if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url);
this.examineImgList.push({
format: file.name.split(".").pop(),
name: file.name,
size: file.size, size: file.size,
attachmentType: file.raw.type, type: file.raw.type,
attachmentUrl: res.data.url, url: res.data.url,
}); });
console.log(this.formData.files); console.log(this.formData.files);
} else { } else {

44
src/views/modules/shequzhili/event/cpts/process-form-contact.vue

@ -179,11 +179,11 @@ export default {
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.audioList.push({ this.audioList.push({
attachmentFormat: file.name.split(".").pop(), format: file.name.split(".").pop(),
attachmentName: file.name, name: file.name,
size: file.size, size: file.size,
attachmentType: file.raw.type, type: file.raw.type,
attachmentUrl: res.data.url, url: res.data.url,
}); });
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
@ -209,11 +209,11 @@ export default {
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.imgList.push({ this.imgList.push({
attachmentFormat: file.name.split(".").pop(), format: file.name.split(".").pop(),
attachmentName: file.name, name: file.name,
size: file.size, size: file.size,
attachmentType: file.raw.type, type: file.raw.type,
attachmentUrl: res.data.url, url: res.data.url,
}); });
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
@ -271,35 +271,7 @@ export default {
); );
} }
}, },
handleFileSuccess(res, file) {
if (res.code === 0 && res.msg === "success") {
const array = file.name.split(".");
const fileType = array[array.length - 1];
const picArray = ["jpg", "png", "jpeg", "bmp"];
const videoarray = ["mp4", "wma", "m4a"];
const docArray = ["doc", "docx", "xls", "xlsx", "pdf"];
const mp3Array = ["mp3"];
if (picArray.indexOf(fileType) > -1) {
file.attachmentFormat = "image";
} else if (videoarray.indexOf(fileType) > -1) {
file.attachmentFormat = "video";
} else if (docArray.indexOf(fileType) > -1) {
file.attachmentFormat = "doc";
} else if (mp3Array.indexOf(fileType) > -1) {
file.attachmentFormat = "voice";
}
file.url = res.data.url;
file.type = fileType;
file.attachmentName = file.name;
file.attachmentType = file.type;
file.attachmentUrl = file.url;
this.fileList.push(file);
} else this.$message.error(res.msg);
},
// //
handleFileDownload(file) { handleFileDownload(file) {
var a = document.createElement("a"); var a = document.createElement("a");

24
src/views/modules/shequzhili/event/cpts/process-form-process.vue

@ -195,11 +195,11 @@ export default {
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.imgList.push({ this.imgList.push({
attachmentFormat: file.name.split(".").pop(), format: file.name.split(".").pop(),
attachmentName: file.name, name: file.name,
size: file.size, size: file.size,
attachmentType: file.raw.type, type: file.raw.type,
attachmentUrl: res.data.url, url: res.data.url,
}); });
console.log(this.imgList); console.log(this.imgList);
} else { } else {
@ -226,11 +226,11 @@ export default {
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.audioList.push({ this.audioList.push({
attachmentFormat: file.name.split(".").pop(), format: file.name.split(".").pop(),
attachmentName: file.name, name: file.name,
size: file.size, size: file.size,
attachmentType: file.raw.type, type: file.raw.type,
attachmentUrl: res.data.url, url: res.data.url,
}); });
console.log(this.audioList); console.log(this.audioList);
} else { } else {
@ -258,11 +258,11 @@ export default {
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.imgList.push({ this.imgList.push({
attachmentFormat: file.name.split(".").pop(), format: file.name.split(".").pop(),
attachmentName: file.name, name: file.name,
size: file.size, size: file.size,
attachmentType: file.raw.type, type: file.raw.type,
attachmentUrl: res.data.url, url: res.data.url,
}); });
console.log(this.formData.files); console.log(this.formData.files);
} else { } else {

9
src/views/modules/shequzhili/event/cpts/process-form.vue

@ -21,7 +21,7 @@
</div> </div>
<div v-if="operationType === '11' && pageType !== 'assign'"> <div v-if="operationType === '11' && pageType !== 'assign'">
<process-form-complete :eventDetailData="eventDetailData" ref="ref_process_form_complete" <process-form-complete :eventDetailData="eventDetailData" ref="ref_process_form_complete"
:eventId="eventId" :pageType="pageType"></process-form-complete> :eventId="eventId" :pageType="pageType" :replayDetailObj="replayDetailObj"></process-form-complete>
</div> </div>
<div v-if="pageType === 'assign'"> <div v-if="pageType === 'assign'">
<process-form-assign ref="ref_process_form_assign" :source="source" :eventDetailData="eventDetailData" <process-form-assign ref="ref_process_form_assign" :source="source" :eventDetailData="eventDetailData"
@ -104,6 +104,10 @@ export default {
source: {//manage visiual source: {//manage visiual
type: String, type: String,
default: 'manage' default: 'manage'
},
replayDetailObj:{
type:Object,
default:()=>{}
} }
}, },
@ -167,7 +171,8 @@ export default {
this.replayInfo = this.$refs.ref_process_form_complete.formData; this.replayInfo = this.$refs.ref_process_form_complete.formData;
this.replayInfo.files = [...this.$refs.ref_process_form_complete.imgList,...this.$refs.ref_process_form_complete.audioList] this.replayInfo.files = [...this.$refs.ref_process_form_complete.imgList,...this.$refs.ref_process_form_complete.audioList]
if(this.pageType === 'check'){ if(this.pageType === 'check'){
this.replayInfo.operationType = '12' this.replayInfo.operationType = '12';
this.replayInfo.files = [...this.replayInfo.files,...this.$refs.ref_process_form_complete.examineImgList]
} }
if (this.$refs.ref_process_form_complete.okflag) { if (this.$refs.ref_process_form_complete.okflag) {
this.replayInfo = this.$refs.ref_process_form_complete.formData this.replayInfo = this.$refs.ref_process_form_complete.formData

Loading…
Cancel
Save