| | |
| | | :title="title" |
| | | :visible="visible" |
| | | centered |
| | | width="50%" |
| | | width="75%" |
| | | @cancel="handleCancel" |
| | | :afterClose="clearMod" |
| | | :footer="null" |
| | |
| | | <a-form-model-item prop="content"> |
| | | <a-textarea v-model="form.content" placeholder="请输入短信通知内容部分" :auto-size="{ minRows: 3, maxRows: 5 }" :readOnly="disable"/> |
| | | </a-form-model-item> |
| | | <a-row v-if="userInfo.unittype == 1 || title == '信息转发' || title == '信息审核'||title == '信息详情'"> |
| | | <a-col :span="24" style="display: flex;align-items: center"> |
| | | <b style="margin-bottom: 24px">直览附件URL:</b> |
| | | <a-form-model-item style="width: 50%"> |
| | | <a-textarea :readonly="title == '信息转发'||title == '信息审核'||title == '信息详情'?true:false" v-model="form.directViewUrl" placeholder="请输入url信息" :auto-size="{ minRows: 1, maxRows: 3 }"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-upload |
| | |
| | | :file-list="fileList" |
| | | @change="fileChange" |
| | | :headers="header" |
| | | accept=".doc, .docx, .word, .pdf, .zip, .xlsx, .rar" |
| | | accept=".doc, .docx, .word, .pdf, .zip, .xlsx, .rar, .jpg, .jpeg, .png" |
| | | :data="{module: 'naturalDisasterPath'}" |
| | | @download="downloadFile" |
| | | :remove="(file)=>{removeFile(file)}" |
| | |
| | | 全选 |
| | | </a-checkbox> |
| | | </div> |
| | | <a-form-model-item prop="receiver"> |
| | | <a-form-model-item prop="receiver" style="margin-bottom: 6px"> |
| | | <a-tree-select |
| | | :maxTagCount="3" |
| | | show-search |
| | | tree-checkable |
| | | treeCheckStrictly |
| | |
| | | > |
| | | </a-tree-select> |
| | | </a-form-model-item> |
| | | <!-- <a-checkbox :checked="withLeaders" @change="isAddLeaders" style="margin-bottom: 24px" :disabled="disable">--> |
| | | <!-- 同时发信息给本级领导--> |
| | | <!-- </a-checkbox>--> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <b style="margin-bottom: 6px">平级接收人选择:</b> |
| | | <div style="display:flex;justify-content: space-between;align-items: center;"> |
| | | <b>平级接收人选择:</b> |
| | | <a-checkbox :checked="checkSlAll" @change="checkSlChange" :disabled="disable"> |
| | | 全选 |
| | | </a-checkbox> |
| | | </div> |
| | | <a-form-model-item> |
| | | <a-select mode="multiple" placeholder="选择平级接收单位" v-model="form.recipient" @change="handle" :disabled="disable"> |
| | | <a-select mode="multiple" placeholder="选择平级接收单位" v-model="form.recipient" @change="handle" :disabled="disable" :maxTagCount="3"> |
| | | <a-select-option v-for="item in filteredOptions" :key="item.id" :value="item.id"> |
| | | {{ item.recipientName }}({{item.company}} {{item.phone}}) |
| | | </a-select-option> |
| | |
| | | </a-col> |
| | | </a-row> |
| | | </div> |
| | | |
| | | <div class="right"> |
| | | <h2>短信预览</h2> |
| | | <div class="mobile"> |
| | |
| | | disasterType: undefined, |
| | | warningLevel: undefined, |
| | | content: '', |
| | | directViewUrl: '', |
| | | publishingUnit: '', |
| | | districtId: null, |
| | | attachments: [], |
| | |
| | | acceptingUnitIds: [], |
| | | peerRecipientIds: [] |
| | | }, |
| | | sendLeaders: [], |
| | | checkAll: false, |
| | | checkSlAll: false, |
| | | withLeaders: false, |
| | | areaUsers: [], |
| | | replaceFields: { |
| | | children:'children', |
| | |
| | | }, |
| | | riskOptions: [ |
| | | {name: '地震',value: 1}, |
| | | {name: '洪涝',value: 2}, |
| | | {name: '气象',value: 3}, |
| | | {name: '泥石流',value: 4}, |
| | | {name: '地质灾害',value: 4}, |
| | | {name: '水旱',value: 5}, |
| | | {name: '森林草原火灾',value: 6} |
| | | ], |
| | |
| | | }, |
| | | computed: {}, |
| | | methods: { |
| | | openMod(type,data){ |
| | | openMod(type,data,id){ |
| | | const t = this |
| | | t.getLeaders() |
| | | t.form.acceptingUnitIds = [] |
| | | t.form.peerRecipientIds = [] |
| | | t.sendLeaders = [] |
| | | if(type == 'review' || type == 'view' || type == 'edit') { |
| | | t.sendLeaders = data.acceptingUnitIds.filter(i=>i.roleId == 2) |
| | | data.acceptingUnitIds = data.acceptingUnitIds.filter(i=>i.roleId == 3) |
| | | if(t.sendLeaders.length>0){ |
| | | t.withLeaders = true |
| | | }else{ |
| | | t.withLeaders = false |
| | | } |
| | | for(let i in data){ |
| | | if(t.isValidKey(i,t.form)){ |
| | | t.form[i] = data[i] |
| | |
| | | t.form.warningLevel = data.warningLevel |
| | | t.form.content = data.content |
| | | t.form.timeout = data.timeout |
| | | t.form.forwardWarnInfoLogId = id |
| | | t.form.forwardStatus = 1 |
| | | t.form.forwardPath = data.forwardPath |
| | | t.form.directViewUrl = data.directViewUrl |
| | | if(data.attachments && data.attachments.length>0){ |
| | | t.fileList = data.attachments.map((i)=>{ |
| | | return { |
| | |
| | | t.fileList = [] |
| | | } |
| | | t.title = '信息转发' |
| | | t.getLeaders() |
| | | t.disable = false |
| | | } |
| | | t.visible = true |
| | |
| | | } |
| | | }, |
| | | |
| | | //选择平级部门部分 |
| | | handle(selectedItems) { |
| | | const t = this |
| | | if(t.form.recipient.length == t.filteredOptions.length){ |
| | | t.checkSlAll = true |
| | | }else{ |
| | | t.checkSlAll = false |
| | | } |
| | | }, |
| | | |
| | | checkSlChange(e) { |
| | | const t = this |
| | | t.checkSlAll = !t.checkSlAll |
| | | if(t.checkSlAll == true){ |
| | | t.form.recipient = t.filteredOptions.map(i=>i.id) |
| | | }else{ |
| | | t.form.recipient = [] |
| | | } |
| | | }, |
| | | |
| | | isAddLeaders(e) { |
| | | const t = this |
| | | t.withLeaders = !t.withLeaders |
| | | if(e.target.checked){ |
| | | // if(t.userInfo.role.id == 3){ |
| | | t.sendLeaders = [] |
| | | for(let i of t.leaders){ |
| | | const {realName,...data} = i |
| | | const { id: recipienterId, name: recipienterName, phone: recipienterPhone,...rest} = data |
| | | const obj = { recipienterId, recipienterName, recipienterPhone, province: null,city: null,area: null,town: null,receiveUnit: t.userInfo.company,unittype: t.userInfo.unittype,roleId: 2,...rest} |
| | | t.sendLeaders.push(obj) |
| | | } |
| | | // } |
| | | }else{ |
| | | t.sendLeaders = [] |
| | | } |
| | | }, |
| | | |
| | | fileChange(info) { |
| | | let fileList = [...info.fileList]; |
| | | // 2. read from response and show file link |
| | | fileList = fileList.map(file => { |
| | | if(file.status == 'done'){ |
| | | if (file.response) { |
| | | const res = file.response |
| | | if(res.code == 100){ |
| | | this.$message.success('文件上传成功') |
| | | }else{ |
| | | this.$message.error('文件上传失败') |
| | | if (file.uid === info.file.uid) { |
| | | if (file.status == 'done') { |
| | | if (file.response) { |
| | | const res = file.response |
| | | if (res.code == 100) { |
| | | this.$message.success('文件上传成功') |
| | | } else { |
| | | this.$message.error('文件上传失败') |
| | | } |
| | | // Component will show file.url as link |
| | | file.url = res.data.fileUrl |
| | | } |
| | | // Component will show file.url as link |
| | | file.url = res.data.fileUrl |
| | | } |
| | | } |
| | | return file; |
| | | }); |
| | | this.fileList = fileList; |
| | | console.log(this.fileList,'list') |
| | | }, |
| | | |
| | | removeFile(file){ |
| | | this.delList.push(file.uid) |
| | | if(this.title == '信息转发'){ |
| | | this.delList.push(file.uid) |
| | | }else{ |
| | | this.delList.push(file.response.data.id) |
| | | } |
| | | console.log(this.fileList,this.form,'form') |
| | | }, |
| | | |
| | | async deleteFile(){ |
| | |
| | | } |
| | | const newAList = [].concat(...aList) |
| | | for(let i of newAList){ |
| | | const {realName,...data} = i |
| | | const {id:recipienterId,name: recipienterName,phone: recipienterPhone,company: receiveUnit,...rest} = data |
| | | const obj = { recipienterId, recipienterName, recipienterPhone, receiveUnit,...rest} |
| | | // const {realName,...data} = i |
| | | const {id:recipienterId,name: recipienterName,phone: recipienterPhone,company: receiveUnit,realName: recipienterRealName,...rest} = i |
| | | const obj = { recipienterId, recipienterName, recipienterRealName, recipienterPhone, receiveUnit,...rest} |
| | | this.form.acceptingUnitIds.push(obj) |
| | | } |
| | | this.form.acceptingUnitIds = [...this.form.acceptingUnitIds,...this.sendLeaders] |
| | | if(this.form.recipient.length>0){ |
| | | const bList = this.form.recipient.map(item => this.filteredOptions.find(i=>i.id == item)) |
| | | for(let i of bList){ |
| | | const {id:recipienterId,recipientName: recipienterName,phone: recipienterPhone, company: receiveUnit,...rest} = i |
| | | const obj = {recipienterId, recipienterName,recipienterPhone,receiveUnit,unittype:this.unittype,...rest} |
| | | const obj = {recipienterId, recipienterName,recipienterPhone,receiveUnit,unittype:this.unittype,recipienterRealName:recipienterName,...rest} |
| | | this.form.peerRecipientIds.push(obj) |
| | | } |
| | | } |
| | |
| | | let blob = new Blob([res.data],{type: res.data.type}) |
| | | link.style.display = "none"; |
| | | link.href = URL.createObjectURL(blob); // 创建URL |
| | | link.setAttribute("download", file.name); |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | document.body.removeChild(link); |
| | | window.open(link.href) |
| | | // link.setAttribute("download", file.name); |
| | | // document.body.appendChild(link); |
| | | // link.click(); |
| | | // document.body.removeChild(link); |
| | | } else { |
| | | this.$message.error('获取文件失败') |
| | | } |
| | |
| | | }, |
| | | onSelect() { |
| | | console.log(...arguments); |
| | | }, |
| | | //选择平级部门部分 |
| | | handle(selectedItems) { |
| | | this.selectedItems = selectedItems; |
| | | }, |
| | | handleRisk(selectedItems) { |
| | | // this.selectedItems = selectedItems; |