Commit ff36c85d27e37589b090d748dec6edbf61aac3b8
1 parent
fbae19a1
1
Showing
15 changed files
with
394 additions
and
451 deletions
src/store/modules/meta.js
| ... | ... | @@ -70,8 +70,16 @@ const meta = { |
| 70 | 70 | break; |
| 71 | 71 | case 'stateType': |
| 72 | 72 | getState().then(res => { |
| 73 | - console.log(res.data, 'list'); | |
| 74 | - | |
| 73 | + let tagType = [ | |
| 74 | + { name: '1', type: 'danger' }, // 未上报 | |
| 75 | + { name: '2', type: 'danger' }, // 未下发 | |
| 76 | + { name: '3', type: 'warning' }, // 待处理 | |
| 77 | + { name: '4', type: 'success' }, // 已处理 | |
| 78 | + { name: '5', type: 'info' }, // 仅保存 | |
| 79 | + ]; | |
| 80 | + res.data.forEach(v => { | |
| 81 | + v.tagType = tagType.find(item => v.EnCode == item.name).type || ''; | |
| 82 | + }); | |
| 75 | 83 | commit('SET_STATETYPE_LIST', res.data) |
| 76 | 84 | resolve(res.data) |
| 77 | 85 | }).catch(error => { reject(error) }) | ... | ... |
src/utils/ncc.js
| ... | ... | @@ -248,6 +248,10 @@ const ncc = { |
| 248 | 248 | return '' |
| 249 | 249 | } |
| 250 | 250 | }, |
| 251 | + getStateTagType(val, list) { | |
| 252 | + if(!list.length || !val) return ''; | |
| 253 | + return list.find(v => v.Id == val).tagType || ''; | |
| 254 | + }, | |
| 251 | 255 | storageSet(obj) { |
| 252 | 256 | for (let i in obj) { |
| 253 | 257 | cacheItem(i, obj[i]) |
| ... | ... | @@ -352,6 +356,6 @@ const ncc = { |
| 352 | 356 | const hasPermission = btnList.some(btn => btn.enCode === enCode) |
| 353 | 357 | if (hasPermission) return true |
| 354 | 358 | return false |
| 355 | - } | |
| 359 | + }, | |
| 356 | 360 | } |
| 357 | 361 | export default ncc |
| 358 | 362 | \ No newline at end of file | ... | ... |
src/views/DisposalSuggestions/Form.vue
| 1 | 1 | <template> |
| 2 | 2 | <el-dialog |
| 3 | - title="判研建议" | |
| 3 | + title="研判建议" | |
| 4 | 4 | :close-on-click-modal="false" |
| 5 | 5 | :visible.sync="visible" |
| 6 | 6 | class="NCC-dialog NCC-dialog_center" |
| ... | ... | @@ -20,13 +20,13 @@ |
| 20 | 20 | </el-col> |
| 21 | 21 | <el-col :span="24"> |
| 22 | 22 | <div class="form-item"> |
| 23 | - <div class="label w-100">平台名称</div> | |
| 23 | + <div class="label w-100">系统名称</div> | |
| 24 | 24 | {{ dataForm.platformName || "--" }} |
| 25 | 25 | </div> |
| 26 | 26 | </el-col> |
| 27 | 27 | <el-col :span="24"> |
| 28 | 28 | <div class="form-item"> |
| 29 | - <div class="label w-100">平台类型</div> | |
| 29 | + <div class="label w-100">系统类型</div> | |
| 30 | 30 | {{ dataForm.platformType || "--" }} |
| 31 | 31 | </div> |
| 32 | 32 | </el-col> |
| ... | ... | @@ -77,7 +77,7 @@ |
| 77 | 77 | </el-col> |
| 78 | 78 | <el-col :span="14"> |
| 79 | 79 | <el-row> |
| 80 | - <el-col :span="24" class="form_title"> 判研建议 </el-col> | |
| 80 | + <el-col :span="24" class="form_title"> 研判建议 </el-col> | |
| 81 | 81 | <el-form |
| 82 | 82 | ref="suggestionForm" |
| 83 | 83 | :rules="rules" |
| ... | ... | @@ -265,7 +265,7 @@ export default { |
| 265 | 265 | !this.suggestionForm.reviewType |
| 266 | 266 | ) { |
| 267 | 267 | this.$message({ |
| 268 | - message: "判研建议不能为空!", | |
| 268 | + message: "研判建议不能为空!", | |
| 269 | 269 | type: "danger", |
| 270 | 270 | }); |
| 271 | 271 | } | ... | ... |
src/views/DisposalSuggestions/index.vue
| ... | ... | @@ -37,8 +37,8 @@ |
| 37 | 37 | </el-row> |
| 38 | 38 | <div class="NCC-common-layout-main NCC-flex-main"> |
| 39 | 39 | <NCC-table v-loading="listLoading" :data="list"> |
| 40 | - <el-table-column show-overflow-tooltip prop="platformName" label="平台名称" align="left" /> | |
| 41 | - <el-table-column show-overflow-tooltip label="平台类型" prop="platformType" align="left"> | |
| 40 | + <el-table-column show-overflow-tooltip prop="platformName" label="系统名称" align="left" /> | |
| 41 | + <el-table-column show-overflow-tooltip label="系统类型" prop="platformType" align="left"> | |
| 42 | 42 | <template slot-scope="scope">{{ scope.row.platformType | dynamicTextUP(systemTypeOptions) }}</template> |
| 43 | 43 | </el-table-column> |
| 44 | 44 | <el-table-column show-overflow-tooltip label="问题类型" prop="questionType" align="left"> |
| ... | ... | @@ -57,7 +57,7 @@ |
| 57 | 57 | </el-table-column> --> |
| 58 | 58 | <el-table-column label="操作" fixed="right" width="100"> |
| 59 | 59 | <template slot-scope="scope"> |
| 60 | - <el-button type="text" @click="addOrUpdateHandle(scope.row.id)" >判研</el-button> | |
| 60 | + <el-button type="text" @click="addOrUpdateHandle(scope.row.id)" >研判</el-button> | |
| 61 | 61 | </template> |
| 62 | 62 | </el-table-column> |
| 63 | 63 | </NCC-table> | ... | ... |
src/views/Login.vue
| ... | ... | @@ -56,8 +56,8 @@ export default { |
| 56 | 56 | data() { |
| 57 | 57 | return { |
| 58 | 58 | form: { |
| 59 | - account: "", // cdoffice | |
| 60 | - password: "", // 123456 | |
| 59 | + account: "wd", // cdoffice | |
| 60 | + password: "123456", // 123456 | |
| 61 | 61 | }, |
| 62 | 62 | rules: { |
| 63 | 63 | account: { required: true, message: "用户名不能为空", trigger: "blur" }, | ... | ... |
src/views/baseCaseHandling/Form.vue
| ... | ... | @@ -45,7 +45,7 @@ |
| 45 | 45 | </el-form-item> |
| 46 | 46 | </el-col> |
| 47 | 47 | <el-col :span="24"> |
| 48 | - <el-form-item label="注册主体" prop="registeredEntity"> | |
| 48 | + <el-form-item label="主体企业" prop="registeredEntity"> | |
| 49 | 49 | <el-input v-model="dataForm.registeredEntity" placeholder="选择系统自动带出" clearable disabled/> |
| 50 | 50 | </el-form-item> |
| 51 | 51 | </el-col> | ... | ... |
src/views/baseCaseHandling/index.vue
| ... | ... | @@ -8,14 +8,10 @@ |
| 8 | 8 | <el-form @submit.native.prevent size="mini"> |
| 9 | 9 | <el-col :span="4"> |
| 10 | 10 | <el-form-item label=""> |
| 11 | - <el-input | |
| 12 | - v-model="query.number" | |
| 13 | - placeholder="档案号" | |
| 14 | - clearable | |
| 15 | - /> | |
| 11 | + <el-input v-model="query.number" placeholder="请输入档案号" clearable/> | |
| 16 | 12 | </el-form-item> |
| 17 | 13 | </el-col> |
| 18 | - <el-col :span="4"> | |
| 14 | + <!-- <el-col :span="4"> | |
| 19 | 15 | <el-form-item label=""> |
| 20 | 16 | <el-date-picker |
| 21 | 17 | v-model="query.registrationTime" |
| ... | ... | @@ -27,23 +23,15 @@ |
| 27 | 23 | > |
| 28 | 24 | </el-date-picker> |
| 29 | 25 | </el-form-item> |
| 30 | - </el-col> | |
| 26 | + </el-col> --> | |
| 31 | 27 | <el-col :span="4"> |
| 32 | 28 | <el-form-item label=""> |
| 33 | - <el-input | |
| 34 | - v-model="query.systemName" | |
| 35 | - placeholder="网站/APP名称" | |
| 36 | - clearable | |
| 37 | - /> | |
| 29 | + <el-input v-model="query.systemName" placeholder="请输入系统名称" clearable/> | |
| 38 | 30 | </el-form-item> |
| 39 | 31 | </el-col> |
| 40 | 32 | <el-col :span="4"> |
| 41 | 33 | <el-form-item label=""> |
| 42 | - <el-select | |
| 43 | - v-model="query.category" | |
| 44 | - placeholder="类别" | |
| 45 | - clearable | |
| 46 | - > | |
| 34 | + <el-select v-model="query.category" placeholder="系统类别" clearable> | |
| 47 | 35 | <el-option |
| 48 | 36 | v-for="(item, index) in systemTypeOptions" |
| 49 | 37 | :key="index" |
| ... | ... | @@ -55,28 +43,15 @@ |
| 55 | 43 | </el-col> |
| 56 | 44 | <el-col :span="3"> |
| 57 | 45 | <el-form-item> |
| 58 | - <el-button | |
| 59 | - type="primary" | |
| 60 | - icon="el-icon-search" | |
| 61 | - @click="search()" | |
| 62 | - >查询</el-button | |
| 63 | - > | |
| 46 | + <el-button type="primary" icon="el-icon-search" @click="search()" >查询</el-button> | |
| 64 | 47 | </el-form-item> |
| 48 | + <div class="NCC-common-search-box-right"> | |
| 49 | + <el-button type="success" icon="el-icon-plus" size="mini" @click="addOrUpdateHandle()">新增</el-button> | |
| 50 | + </div> | |
| 65 | 51 | </el-col> |
| 66 | 52 | </el-form> |
| 67 | 53 | </el-row> |
| 68 | 54 | <div class="NCC-common-layout-main NCC-flex-main"> |
| 69 | - <div class="NCC-common-head"> | |
| 70 | - <div> | |
| 71 | - <el-button | |
| 72 | - type="primary" | |
| 73 | - icon="el-icon-plus" | |
| 74 | - size="mini" | |
| 75 | - @click="addOrUpdateHandle()" | |
| 76 | - >新增</el-button | |
| 77 | - > | |
| 78 | - </div> | |
| 79 | - </div> | |
| 80 | 55 | <NCC-table |
| 81 | 56 | v-loading="listLoading" |
| 82 | 57 | :data="list" |
| ... | ... | @@ -85,8 +60,8 @@ |
| 85 | 60 | <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> --> |
| 86 | 61 | <el-table-column prop="number" label="档案号" align="left" show-overflow-tooltip/> |
| 87 | 62 | <el-table-column prop="registrationTime" label="登记时间" :formatter="ncc.tableDateFormat" align="left" show-overflow-tooltip/> |
| 88 | - <el-table-column prop="systemName" label="网站/APP名称" align="left" width="150" show-overflow-tooltip/> | |
| 89 | - <el-table-column prop="registeredEntity" label="注册主体" align="left" show-overflow-tooltip/> | |
| 63 | + <el-table-column prop="systemName" label="系统名称" align="left" width="150" show-overflow-tooltip/> | |
| 64 | + <el-table-column prop="registeredEntity" label="主体企业" align="left" show-overflow-tooltip/> | |
| 90 | 65 | <el-table-column label="类别" prop="category" align="left"> |
| 91 | 66 | <template slot-scope="scope">{{ scope.row.category | dynamicTextUP(systemTypeOptions) }}</template> |
| 92 | 67 | </el-table-column> |
| ... | ... | @@ -98,7 +73,9 @@ |
| 98 | 73 | <el-table-column prop="punishmentRequirements" label="处罚要求" align="left" show-overflow-tooltip/> |
| 99 | 74 | <el-table-column prop="punishmentContent" label="处罚内容" align="left" show-overflow-tooltip/> |
| 100 | 75 | <el-table-column label="状态" prop="state" align="left" > |
| 101 | - <template slot-scope="scope">{{ scope.row.state | dynamicTextUP(stateOptions) }}</template> | |
| 76 | + <template slot-scope="scope"> | |
| 77 | + <el-tag :type="ncc.getStateTagType(scope.row.state, stateOptions)">{{ scope.row.state | dynamicTextUP(stateOptions) }}</el-tag> | |
| 78 | + </template> | |
| 102 | 79 | </el-table-column> |
| 103 | 80 | <el-table-column label="操作" fixed="right" width="180"> |
| 104 | 81 | <template slot-scope="scope"> |
| ... | ... | @@ -172,10 +149,7 @@ export default { |
| 172 | 149 | { fullName: "选项一", id: "选项一" }, |
| 173 | 150 | { fullName: "", id: "选项二" }, |
| 174 | 151 | ], |
| 175 | - stateOptions: [ | |
| 176 | - { fullName: "选项一", id: "1" }, | |
| 177 | - { fullName: "选项二", id: "2" }, | |
| 178 | - ], | |
| 152 | + stateOptions: [], | |
| 179 | 153 | areaOptions: [], |
| 180 | 154 | }; |
| 181 | 155 | }, | ... | ... |
src/views/baseInspectionReport/Form.vue
| ... | ... | @@ -3,9 +3,9 @@ |
| 3 | 3 | :title="!dataForm.id ? '新建' : isDetail ? '详情' : '编辑'" |
| 4 | 4 | :close-on-click-modal="false" |
| 5 | 5 | :visible.sync="visible" |
| 6 | - class="NCC-dialog NCC-dialog_center" | |
| 6 | + class="NCC-dialog NCC-dialog_center baseInspectionReportForm" | |
| 7 | 7 | lock-scroll |
| 8 | - width="60%" | |
| 8 | + width="50%" | |
| 9 | 9 | > |
| 10 | 10 | <el-row :gutter="15" class="NCC-dialog-content"> |
| 11 | 11 | <el-form |
| ... | ... | @@ -19,161 +19,93 @@ |
| 19 | 19 | > |
| 20 | 20 | <el-col :span="23" v-if="false"> |
| 21 | 21 | <el-form-item label="主键" prop="id"> |
| 22 | - <el-input | |
| 23 | - v-model="dataForm.id" | |
| 24 | - placeholder="请输入" | |
| 25 | - clearable | |
| 26 | - :style="{ width: '100%' }" | |
| 27 | - > | |
| 28 | - </el-input> | |
| 22 | + <el-input v-model="dataForm.id" placeholder="请输入" clearable :style="{ width: '100%' }"></el-input> | |
| 29 | 23 | </el-form-item> |
| 30 | 24 | </el-col> |
| 31 | 25 | <el-col :span="23"> |
| 32 | 26 | <el-form-item label="问题来源" prop="source"> |
| 33 | 27 | <el-radio-group v-model="dataForm.source"> |
| 34 | - <el-radio | |
| 35 | - v-for="(item, index) in sourceOptions" | |
| 36 | - :key="index" | |
| 37 | - :label="item.Id" | |
| 38 | - >{{ item.FullName }}</el-radio | |
| 39 | - > | |
| 28 | + <el-radio v-for="(item, index) in sourceOptions" :key="index" :label="item.Id">{{ item.FullName }}</el-radio> | |
| 40 | 29 | </el-radio-group> |
| 41 | 30 | </el-form-item> |
| 42 | 31 | </el-col> |
| 43 | 32 | <el-col :span="23"> |
| 44 | - <el-form-item label="平台名称" prop="platformName"> | |
| 33 | + <el-form-item label="系统名称" prop="platformName"> | |
| 45 | 34 | <el-select |
| 35 | + ref="select" | |
| 46 | 36 | v-model="dataForm.platformName" |
| 47 | 37 | filterable |
| 48 | 38 | remote |
| 49 | 39 | reserve-keyword |
| 50 | - placeholder="请输入平台名称" | |
| 51 | - :remote-method="loadList" | |
| 52 | - :loading="name_loading"> | |
| 53 | - <el-option | |
| 54 | - v-for="item in nameOptions" | |
| 55 | - :key="item.value" | |
| 56 | - :label="item.label" | |
| 57 | - :value="item.value"> | |
| 58 | - </el-option> | |
| 40 | + placeholder="请输入系统名称" | |
| 41 | + @blur.native.capture="selectBlur" | |
| 42 | + @visible-change="visibleNameChange" | |
| 43 | + @change="(val) => platformNameChange(val, 'change')" | |
| 44 | + :loading="name_loading" | |
| 45 | + :disabled="!!this.dataForm.id"> | |
| 46 | + <el-option v-for="item in nameOptions" :key="item.id" :label="item.systemName" :value="item.id"></el-option> | |
| 59 | 47 | </el-select> |
| 60 | 48 | </el-form-item> |
| 61 | 49 | </el-col> |
| 62 | 50 | <el-col :span="23"> |
| 63 | - <el-form-item label="平台类型" prop="platformType"> | |
| 64 | - <el-radio-group v-model="dataForm.platformType" :style="{}"> | |
| 65 | - <el-radio | |
| 66 | - v-for="(item, index) in platformTypeOptions" | |
| 67 | - :key="index" | |
| 68 | - :label="item.Id" | |
| 69 | - >{{ item.FullName }}</el-radio | |
| 70 | - > | |
| 51 | + <el-form-item label="系统类型" prop="platformType"> | |
| 52 | + <el-radio-group v-model="dataForm.platformType" :disabled='isDisabledTypeByName || !!this.dataForm.id'> | |
| 53 | + <el-radio v-for="(item, index) in platformTypeOptions" :key="index" :label="item.Id">{{ item.FullName }}</el-radio> | |
| 71 | 54 | </el-radio-group> |
| 72 | 55 | </el-form-item> |
| 73 | 56 | </el-col> |
| 74 | - <el-col :span="18"> | |
| 57 | + <el-col :span="23" v-show="dataForm.platformType == '580634746028033285' && !isDisabledTypeByName"> | |
| 58 | + <el-form-item label="归属平台" prop="selfMediaPlatformType"> | |
| 59 | + <el-input v-model="dataForm.selfMediaPlatformType" placeholder="请输入归属平台" clearable :style="{ width: '100%' }" :disabled="!!this.dataForm.id"/> | |
| 60 | + </el-form-item> | |
| 61 | + </el-col> | |
| 62 | + <el-col :span="23"> | |
| 75 | 63 | <el-form-item label="问题类型" prop="questionType"> |
| 76 | - <el-radio-group v-model="dataForm.questionType" @change="questionTypeChange"> | |
| 77 | - <el-radio | |
| 78 | - v-for="(item, index) in questionTypeOptions" | |
| 79 | - :key="index" | |
| 80 | - :label="item.fullName" | |
| 81 | - >{{ item.fullName }}</el-radio | |
| 82 | - > | |
| 83 | - <el-radio label="其他">其他</el-radio> | |
| 64 | + <el-radio-group v-model="dataForm.questionType"> | |
| 65 | + <el-radio v-for="(item, index) in questionTypeOptions" :key="index" :label="item.fullName" >{{ item.fullName }}</el-radio> | |
| 84 | 66 | </el-radio-group> |
| 85 | 67 | </el-form-item> |
| 86 | 68 | </el-col> |
| 87 | - <template v-if="otherQuestion"> | |
| 88 | - <el-col :span="5"> | |
| 89 | - <el-input | |
| 90 | - v-model="dataForm.otherQuestionType" | |
| 91 | - placeholder="请输入问题类型" | |
| 92 | - clearable | |
| 93 | - :style="{ width: '100%' }" | |
| 94 | - > | |
| 95 | - </el-input> | |
| 96 | - </el-col> | |
| 97 | - </template> | |
| 98 | - <template v-if="showErrflag"> | |
| 99 | - <el-col :span="12"> | |
| 100 | - <el-form-item label="正确描述" prop="accurateDescription"> | |
| 101 | - <el-input | |
| 102 | - v-model="dataForm.accurateDescription" | |
| 103 | - placeholder="请输入正确描述" | |
| 104 | - clearable | |
| 105 | - :style="{ width: '100%' }" | |
| 106 | - > | |
| 107 | - </el-input> | |
| 108 | - </el-form-item> | |
| 109 | - </el-col> | |
| 110 | - <el-col :span="11"> | |
| 111 | - <el-form-item label="错误描述" prop="incorrectDescription"> | |
| 112 | - <el-input | |
| 113 | - v-model="dataForm.incorrectDescription" | |
| 114 | - placeholder="请输入错误描述" | |
| 115 | - clearable | |
| 116 | - :style="{ width: '100%' }" | |
| 117 | - > | |
| 118 | - </el-input> | |
| 119 | - </el-form-item> | |
| 120 | - </el-col> | |
| 121 | - </template> | |
| 122 | - | |
| 69 | + <el-col :span="23" v-show="dataForm.questionType == '其他'"> | |
| 70 | + <el-form-item label="其他问题类型" prop="otherQuestionType"> | |
| 71 | + <el-input v-model="dataForm.otherQuestionType" placeholder="请输入其他问题类型" clearable :style="{ width: '100%' }" /> | |
| 72 | + </el-form-item> | |
| 73 | + </el-col> | |
| 74 | + <el-col :span="23" v-show="dataForm.questionType == '错误表述'"> | |
| 75 | + <el-form-item label="正确描述" prop="accurateDescription"> | |
| 76 | + <el-input v-model="dataForm.accurateDescription" placeholder="请输入正确描述" clearable :style="{ width: '100%' }"></el-input> | |
| 77 | + </el-form-item> | |
| 78 | + </el-col> | |
| 79 | + <el-col :span="23" v-show="dataForm.questionType == '错误表述'"> | |
| 80 | + <el-form-item label="错误描述" prop="incorrectDescription"> | |
| 81 | + <el-input v-model="dataForm.incorrectDescription" placeholder="请输入错误描述" clearable :style="{ width: '100%' }"></el-input> | |
| 82 | + </el-form-item> | |
| 83 | + </el-col> | |
| 123 | 84 | <el-col :span="23"> |
| 124 | 85 | <el-form-item label="问题内容" prop="questionContent"> |
| 125 | - <el-input | |
| 126 | - v-model="dataForm.questionContent" | |
| 127 | - placeholder="请输入" | |
| 128 | - show-word-limit | |
| 129 | - :style="{ width: '100%' }" | |
| 130 | - type="textarea" | |
| 131 | - :autosize="{ minRows: 4, maxRows: 4 }" | |
| 132 | - > | |
| 133 | - </el-input> | |
| 86 | + <el-input v-model="dataForm.questionContent" placeholder="请输入" show-word-limit :style="{ width: '100%' }" type="textarea" :autosize="{ minRows: 4, maxRows: 4 }" /> | |
| 134 | 87 | </el-form-item> |
| 135 | 88 | </el-col> |
| 136 | 89 | <el-col :span="23"> |
| 137 | - <el-form-item label="有害链接" prop="link"> | |
| 138 | - <el-input | |
| 139 | - v-model="dataForm.link" | |
| 140 | - placeholder="请输入" | |
| 141 | - clearable | |
| 142 | - :style="{ width: '100%' }" | |
| 143 | - > | |
| 144 | - </el-input> | |
| 90 | + <el-form-item label="链接" prop="link"> | |
| 91 | + <el-input v-model="dataForm.link" placeholder="请输入链接" clearable :style="{ width: '100%' }"></el-input> | |
| 145 | 92 | </el-form-item> |
| 146 | 93 | </el-col> |
| 147 | 94 | <el-col :span="23"> |
| 148 | 95 | <el-form-item label="关键词" prop="questionClass"> |
| 149 | - <el-input | |
| 150 | - v-model="dataForm.questionClass" | |
| 151 | - placeholder="请输入关键词" | |
| 152 | - clearable | |
| 153 | - :style="{ width: '100%' }" | |
| 154 | - > | |
| 155 | - </el-input> | |
| 96 | + <el-input v-model="dataForm.questionClass" placeholder="请输入关键词" clearable :style="{ width: '100%' }"></el-input> | |
| 156 | 97 | </el-form-item> |
| 157 | 98 | </el-col> |
| 158 | 99 | <el-col :span="23"> |
| 159 | 100 | <el-form-item label="附件" prop="obtainEvidence"> |
| 160 | - <NCC-UploadFz | |
| 161 | - v-model="dataForm.obtainEvidence" | |
| 162 | - :fileSize="5" | |
| 163 | - sizeUnit="MB" | |
| 164 | - :limit="9" | |
| 165 | - buttonText="点击上传" | |
| 166 | - > | |
| 167 | - </NCC-UploadFz> | |
| 101 | + <NCC-UploadFz v-model="dataForm.obtainEvidence" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" /> | |
| 168 | 102 | </el-form-item> |
| 169 | 103 | </el-col> |
| 170 | 104 | </el-form> |
| 171 | 105 | </el-row> |
| 172 | 106 | <span slot="footer" class="dialog-footer"> |
| 173 | 107 | <el-button @click="visible = false">取 消</el-button> |
| 174 | - <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail" | |
| 175 | - >确 定</el-button | |
| 176 | - > | |
| 108 | + <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail">确 定</el-button> | |
| 177 | 109 | </span> |
| 178 | 110 | </el-dialog> |
| 179 | 111 | </template> |
| ... | ... | @@ -194,7 +126,8 @@ export default { |
| 194 | 126 | dataForm: { |
| 195 | 127 | id: undefined, |
| 196 | 128 | source: undefined, |
| 197 | - platformName: undefined, | |
| 129 | + platformName: '', | |
| 130 | + selfMediaPlatformType: '', | |
| 198 | 131 | platformType: undefined, |
| 199 | 132 | questionType: undefined, |
| 200 | 133 | questionClass: undefined, |
| ... | ... | @@ -207,33 +140,32 @@ export default { |
| 207 | 140 | otherQuestionType: undefined |
| 208 | 141 | }, |
| 209 | 142 | rules: { |
| 143 | + platformName: [ | |
| 144 | + { required: true, message: "请选择系统名称", trigger: "blur" }, | |
| 145 | + ], | |
| 210 | 146 | platformType: [ |
| 211 | - { required: true, message: "请选择平台类型", trigger: "change" }, | |
| 147 | + { required: true, message: "请选择系统类型", trigger: "blur" }, | |
| 212 | 148 | ], |
| 213 | 149 | questionType: [ |
| 214 | - { required: true, message: "请选择问题类型", trigger: "change" }, | |
| 150 | + { required: true, message: "请选择问题类型", trigger: "blur" }, | |
| 215 | 151 | ], |
| 152 | + // otherQuestionType: [ | |
| 153 | + // { required: true, message: "请输入其他问题类型", trigger: "blur" }, | |
| 154 | + // ], | |
| 216 | 155 | }, |
| 217 | - sourceOptions: [ | |
| 218 | - { fullName: "市网信办线索", id: "市网信办线索" }, | |
| 219 | - { fullName: "自主巡查发现", id: "自主巡查发现" }, | |
| 220 | - ], | |
| 156 | + sourceOptions: [], | |
| 221 | 157 | platformTypeOptions: [], |
| 222 | 158 | questionTypeOptions: [], |
| 223 | - questionClassOptions: [ | |
| 224 | - { fullName: "选项一", id: "1" }, | |
| 225 | - { fullName: "选项二", id: "2" }, | |
| 226 | - ], | |
| 227 | - stageOptions: [ | |
| 228 | - { fullName: "选项一", id: "1" }, | |
| 229 | - { fullName: "选项二", id: "2" }, | |
| 230 | - ], | |
| 231 | - showErrflag: false, | |
| 232 | - otherQuestion: false, | |
| 233 | 159 | nameOptions: [], |
| 234 | 160 | }; |
| 235 | 161 | }, |
| 236 | - computed: {}, | |
| 162 | + computed: { | |
| 163 | + isDisabledTypeByName() { | |
| 164 | + if(!this.nameOptions.length) return false; | |
| 165 | + let index = this.nameOptions.findIndex(v => v.id == this.dataForm.platformName); | |
| 166 | + return index != -1; | |
| 167 | + } | |
| 168 | + }, | |
| 237 | 169 | watch: {}, |
| 238 | 170 | created() { |
| 239 | 171 | this.loadList(); |
| ... | ... | @@ -243,29 +175,36 @@ export default { |
| 243 | 175 | }, |
| 244 | 176 | mounted() {}, |
| 245 | 177 | methods: { |
| 246 | - loadList(query) { | |
| 178 | + selectBlur(e) { | |
| 179 | + let value = e.target.value; | |
| 180 | + if(!value) return; | |
| 181 | + this.dataForm.platformName = e.target.value; | |
| 182 | + this.platformNameChange(value, 'blur'); | |
| 183 | + }, | |
| 184 | + platformNameChange(val, type) { | |
| 185 | + let obj = this.nameOptions.find(v => type == 'blur' ? val == v.fullName : val == v.id); | |
| 186 | + this.dataForm.platformName = obj ? obj.id : val; | |
| 187 | + this.dataForm.platformType = obj ? obj.systemType : ''; | |
| 188 | + this.dataForm.selfMediaPlatformType = obj ? obj.platform : ''; | |
| 189 | + }, | |
| 190 | + visibleNameChange(val) { | |
| 191 | + if (val) return | |
| 192 | + let input = this.$refs.select.$children[0].$refs.input; | |
| 193 | + input.blur(); | |
| 194 | + }, | |
| 195 | + loadList() { | |
| 247 | 196 | this.name_loading = true; |
| 248 | - getInfoList({pageIndex: 1, pageSize: 100, keyword: query }).then(({ data }) => { | |
| 249 | - let list = []; | |
| 250 | - data.list.length && | |
| 251 | - data.list.forEach((item) => { | |
| 252 | - list.push({ | |
| 253 | - label: item.SysytemInfo.SystemName, | |
| 254 | - value: item.SysytemInfo.Id, | |
| 255 | - }); | |
| 256 | - }); | |
| 257 | - this.nameOptions = list; | |
| 197 | + request({ | |
| 198 | + url: `/Extend/basesysteminfo/GetNoPagingList`, | |
| 199 | + method: "GET", | |
| 200 | + }).then(({data}) => { | |
| 201 | + this.nameOptions = data; | |
| 258 | 202 | this.name_loading = false; |
| 259 | - }); | |
| 260 | - }, | |
| 261 | - questionTypeChange(v) { | |
| 262 | - this.showErrflag = Boolean(v == '错误表述'); | |
| 263 | - this.otherQuestion = Boolean(v == '其他'); | |
| 203 | + }) | |
| 264 | 204 | }, |
| 265 | 205 | async getplatformTypeOptions() { |
| 266 | 206 | let list = this.$store.state.meta.system; |
| 267 | - !list && | |
| 268 | - (list = await this.$store.dispatch("getTypeListByCode", "system")); | |
| 207 | + !list && (list = await this.$store.dispatch("getTypeListByCode", "system")); | |
| 269 | 208 | this.platformTypeOptions = list; |
| 270 | 209 | }, |
| 271 | 210 | async getSourceOptions() { |
| ... | ... | @@ -278,17 +217,15 @@ export default { |
| 278 | 217 | }, |
| 279 | 218 | getquestionTypeOptions() { |
| 280 | 219 | getDictionaryDataSelector("577006814432855301").then((res) => { |
| 281 | - this.questionTypeOptions = res.data.list; | |
| 220 | + this.questionTypeOptions = [...res.data.list, {Id: '0', fullName: '其他'}]; | |
| 282 | 221 | }); |
| 283 | 222 | }, |
| 284 | 223 | goBack() { |
| 285 | 224 | this.$emit("refresh"); |
| 286 | 225 | }, |
| 287 | 226 | init(id, isDetail) { |
| 288 | - this.dataForm.id = id || 0; | |
| 227 | + this.dataForm.id = id || ''; | |
| 289 | 228 | this.visible = true; |
| 290 | - this.otherQuestion = false; | |
| 291 | - this.showErrflag = false; | |
| 292 | 229 | this.isDetail = isDetail || false; |
| 293 | 230 | this.$nextTick(async () => { |
| 294 | 231 | this.$refs["elForm"].resetFields(); |
| ... | ... | @@ -299,28 +236,20 @@ export default { |
| 299 | 236 | this.dataForm.otherQuestionType = res.data.questionType; |
| 300 | 237 | this.dataForm.questionType = '其他'; |
| 301 | 238 | } |
| 239 | + this.dataForm.selfMediaPlatformType = res.data.selfMediaPlatformType || '--'; | |
| 302 | 240 | if (!this.dataForm.obtainEvidence) this.dataForm.obtainEvidence = []; |
| 303 | 241 | if (!this.dataForm.annex) this.dataForm.annex = []; |
| 304 | - this.$nextTick(() => { | |
| 305 | - this.questionTypeChange(this.dataForm.questionType); | |
| 306 | - }) | |
| 307 | 242 | } |
| 308 | 243 | }); |
| 309 | 244 | }, |
| 310 | - getQuestionTypeName() { | |
| 311 | - if(this.dataForm.questionType == '其他') { | |
| 312 | - return this.dataForm.otherQuestionType; | |
| 313 | - } else { | |
| 314 | - return this.dataForm.questionType; | |
| 315 | - } | |
| 316 | - }, | |
| 317 | 245 | dataFormSubmit() { |
| 318 | 246 | this.$refs["elForm"].validate(async (valid) => { |
| 319 | 247 | if (valid) { |
| 320 | - this.dataForm.questionType = this.getQuestionTypeName(); | |
| 321 | - let res = !this.dataForm.id | |
| 322 | - ? await addForm(this.dataForm) | |
| 323 | - : await updataForm(this.dataForm); | |
| 248 | + let obj = { | |
| 249 | + ...this.dataForm, | |
| 250 | + questionType: this.dataForm.questionType == '其他' ? this.dataForm.otherQuestionType : this.dataForm.questionType, | |
| 251 | + } | |
| 252 | + let res = !this.dataForm.id ? await addForm(obj) : await updataForm(obj); | |
| 324 | 253 | this.$message({ |
| 325 | 254 | message: res.msg, |
| 326 | 255 | type: "success", |
| ... | ... | @@ -335,3 +264,10 @@ export default { |
| 335 | 264 | }, |
| 336 | 265 | }; |
| 337 | 266 | </script> |
| 267 | +<style lang="scss" scoped> | |
| 268 | +.baseInspectionReportForm { | |
| 269 | + :deep(.el-radio) { | |
| 270 | + margin: 0 30px 8px 0; | |
| 271 | + } | |
| 272 | +} | |
| 273 | +</style> | ... | ... |
src/views/baseInspectionReport/index.vue
| ... | ... | @@ -28,23 +28,22 @@ |
| 28 | 28 | <el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button> |
| 29 | 29 | </el-form-item> |
| 30 | 30 | </el-col> |
| 31 | + <div class="NCC-common-search-box-right"> | |
| 32 | + <el-button type="success" icon="el-icon-plus" @click="addOrUpdateHandle()" size="mini" >新增</el-button> | |
| 33 | + <!-- <el-button type="primary" icon="el-icon-download" size="mini" @click="exportData()">导出</el-button> --> | |
| 34 | + </div> | |
| 31 | 35 | </el-form> |
| 32 | 36 | </el-row> |
| 33 | 37 | <div class="NCC-common-layout-main NCC-flex-main"> |
| 34 | - <div class="NCC-common-head"> | |
| 35 | - <div> | |
| 36 | - <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()" size="mini">新增</el-button> | |
| 37 | - </div> | |
| 38 | - </div> | |
| 39 | 38 | <NCC-table v-loading="listLoading" :data="list"> |
| 40 | - <el-table-column show-overflow-tooltip prop="platformName" label="平台名称" align="left" /> | |
| 41 | - <el-table-column show-overflow-tooltip label="平台类型" prop="platformType" align="left"> | |
| 39 | + <el-table-column show-overflow-tooltip prop="platformName" label="系统名称" align="left" /> | |
| 40 | + <el-table-column show-overflow-tooltip label="系统类型" prop="platformType" align="left"> | |
| 42 | 41 | <template slot-scope="scope">{{ scope.row.platformType | dynamicTextUP(systemTypeOptions) }}</template> |
| 43 | 42 | </el-table-column> |
| 44 | 43 | <el-table-column show-overflow-tooltip label="问题类型" prop="questionType" align="left"> |
| 45 | 44 | <template slot-scope="scope">{{ scope.row.questionType | dynamicText(questionTypeOptions) }}</template> |
| 46 | 45 | </el-table-column> |
| 47 | - <el-table-column show-overflow-tooltip prop="link" label="有害链接" align="left" /> | |
| 46 | + <!-- <el-table-column show-overflow-tooltip prop="link" label="有害链接" align="left" /> --> | |
| 48 | 47 | <el-table-column show-overflow-tooltip prop="questionClass" label="关键词" align="left" /> |
| 49 | 48 | <!-- <el-table-column show-overflow-tooltip prop="department" label="部门" align="left" /> --> |
| 50 | 49 | <!-- <el-table-column show-overflow-tooltip label="问题分类" prop="questionClass" align="left"> | ... | ... |
src/views/baseListHazardousSamples/index.vue
| ... | ... | @@ -6,7 +6,7 @@ |
| 6 | 6 | <div class="NCC-common-layout-center"> |
| 7 | 7 | <el-row class="NCC-common-search-box" :gutter="16"> |
| 8 | 8 | <el-form @submit.native.prevent size="mini"> |
| 9 | - <el-col :span="4"> | |
| 9 | + <!-- <el-col :span="4"> | |
| 10 | 10 | <el-form-item label=""> |
| 11 | 11 | <el-date-picker |
| 12 | 12 | v-model="query.inputTime" |
| ... | ... | @@ -18,15 +18,15 @@ |
| 18 | 18 | > |
| 19 | 19 | </el-date-picker> |
| 20 | 20 | </el-form-item> |
| 21 | - </el-col> | |
| 22 | - <el-col :span="4"> | |
| 21 | + </el-col> --> | |
| 22 | + <el-col :span="6"> | |
| 23 | 23 | <el-form-item label=""> |
| 24 | - <el-input v-model="query.content" placeholder="具体内容" /> | |
| 24 | + <el-input v-model="query.content" placeholder="请输入具体内容" /> | |
| 25 | 25 | </el-form-item> |
| 26 | 26 | </el-col> |
| 27 | 27 | <el-col :span="4"> |
| 28 | 28 | <el-form-item label=""> |
| 29 | - <el-select v-model="query.level" placeholder="级别" clearable> | |
| 29 | + <el-select v-model="query.harmfulInformationTypes" placeholder="请选择有害类型" clearable> | |
| 30 | 30 | <el-option |
| 31 | 31 | v-for="(item, index) in levelOptions" |
| 32 | 32 | :key="index" |
| ... | ... | @@ -40,7 +40,7 @@ |
| 40 | 40 | <el-form-item label=""> |
| 41 | 41 | <el-select |
| 42 | 42 | v-model="query.company" |
| 43 | - placeholder="涉及的企业" | |
| 43 | + placeholder="请选择主体企业" | |
| 44 | 44 | clearable |
| 45 | 45 | > |
| 46 | 46 | <el-option |
| ... | ... | @@ -56,7 +56,7 @@ |
| 56 | 56 | <el-form-item label=""> |
| 57 | 57 | <el-select |
| 58 | 58 | v-model="query.websitePlatform" |
| 59 | - placeholder="网站平台" | |
| 59 | + placeholder="请选择系统" | |
| 60 | 60 | clearable |
| 61 | 61 | > |
| 62 | 62 | <el-option |
| ... | ... | @@ -70,30 +70,29 @@ |
| 70 | 70 | </el-col> |
| 71 | 71 | <el-col :span="3"> |
| 72 | 72 | <el-form-item> |
| 73 | - <el-button | |
| 74 | - type="primary" | |
| 75 | - icon="el-icon-search" | |
| 76 | - @click="search()" | |
| 77 | - >查询</el-button | |
| 78 | - > | |
| 73 | + <el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button> | |
| 79 | 74 | </el-form-item> |
| 75 | + <div class="NCC-common-search-box-right"> | |
| 76 | + <el-button type="primary" icon="el-icon-download" size="mini" @click="toExport" :loading="exportBtnLoading">导出</el-button> | |
| 77 | + </div> | |
| 80 | 78 | </el-col> |
| 81 | 79 | </el-form> |
| 82 | 80 | </el-row> |
| 83 | 81 | <div class="NCC-common-layout-main NCC-flex-main"> |
| 84 | 82 | <NCC-table v-loading="listLoading" :data="list"> |
| 85 | - <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> | |
| 83 | + <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> --> | |
| 86 | 84 | <el-table-column prop="inputTime" label="录入时间" align="left" :formatter="ncc.tableDateFormat" show-overflow-tooltip/> |
| 87 | - <el-table-column prop="content" label="具体内容" align="left" show-overflow-tooltip/> | |
| 88 | - <el-table-column label="有害信息类型" prop="harmfulInformationTypes" align="left" show-overflow-tooltip /> | |
| 89 | - <el-table-column label="涉及的企业" prop="companyStr" align="left" show-overflow-tooltip/> | |
| 90 | - <el-table-column label="网站平台" prop="websitePlatform" align="left" show-overflow-tooltip> | |
| 91 | - <template slot-scope="scope">{{ scope.row.websitePlatform | dynamicText(websitePlatformOptions) }}</template> | |
| 92 | - </el-table-column> | |
| 93 | - <el-table-column prop="creatorUserId" label="创建用户" show-overflow-tooltip align="left"/> | |
| 94 | - <el-table-column prop="creatorTime" label="创建时间" align="left" show-overflow-tooltip :formatter="ncc.tableDateFormat"/> | |
| 95 | - <el-table-column prop="lastModifyUserId" label="修改用户" align="left" show-overflow-tooltip/> | |
| 96 | - <el-table-column prop="lastModifyTime" label="修改时间" :formatter="ncc.tableDateFormat" show-overflow-tooltip align="left"/> | |
| 85 | + <el-table-column label="运营主体" prop="websitePlatformStr" align="left" show-overflow-tooltip /> | |
| 86 | + <el-table-column label="网站平台" prop="websitePlatformStr" align="left" show-overflow-tooltip /> | |
| 87 | + <el-table-column label="来源" prop="harmfulInformationTypes" align="left" show-overflow-tooltip /> | |
| 88 | + <el-table-column label="问题类型" prop="websitePlatformStr" align="left" show-overflow-tooltip /> | |
| 89 | + <el-table-column label="问题内容" prop="websitePlatformStr" align="left" show-overflow-tooltip /> | |
| 90 | + <el-table-column label="违法原因" prop="websitePlatformStr" align="left" show-overflow-tooltip /> | |
| 91 | + <el-table-column label="处罚内容" prop="content" align="left" show-overflow-tooltip/> | |
| 92 | + <!-- <el-table-column prop="creatorUserId" label="创建用户" show-overflow-tooltip align="left"/> --> | |
| 93 | + <!-- <el-table-column prop="creatorTime" label="创建时间" align="left" show-overflow-tooltip :formatter="ncc.tableDateFormat"/> --> | |
| 94 | + <!-- <el-table-column prop="lastModifyUserId" label="修改用户" align="left" show-overflow-tooltip/> --> | |
| 95 | + <!-- <el-table-column prop="lastModifyTime" label="修改时间" :formatter="ncc.tableDateFormat" show-overflow-tooltip align="left"/> --> | |
| 97 | 96 | <!-- <el-table-column label="操作" fixed="right" width="100"> |
| 98 | 97 | <template slot-scope="scope"> |
| 99 | 98 | <el-button type="text" @click="addOrUpdateHandle(scope.row, ture)">详情</el-button> |
| ... | ... | @@ -132,7 +131,7 @@ export default { |
| 132 | 131 | query: { |
| 133 | 132 | inputTime: undefined, |
| 134 | 133 | content: undefined, |
| 135 | - level: undefined, | |
| 134 | + harmfulInformationTypes: undefined, // 有害类型 | |
| 136 | 135 | company: undefined, |
| 137 | 136 | websitePlatform: undefined, |
| 138 | 137 | }, |
| ... | ... | @@ -164,11 +163,14 @@ export default { |
| 164 | 163 | ], |
| 165 | 164 | harmfulInformationTypesOptions: [], |
| 166 | 165 | levelOptions: [ |
| 167 | - { fullName: "选项一", id: "1" }, | |
| 168 | - { fullName: "选项二", id: "2" }, | |
| 166 | + { fullName: "巡查上报", id: "巡查上报" }, | |
| 167 | + { fullName: "案件处理", id: "案件处理" }, | |
| 169 | 168 | ], |
| 170 | 169 | companyOptions: [], |
| 171 | 170 | websitePlatformOptions: [], |
| 171 | + | |
| 172 | + // 导出 | |
| 173 | + exportBtnLoading: false, | |
| 172 | 174 | }; |
| 173 | 175 | }, |
| 174 | 176 | computed: {}, |
| ... | ... | @@ -176,7 +178,7 @@ export default { |
| 176 | 178 | this.initData(); |
| 177 | 179 | this.getharmfulInformationTypesOptions(); |
| 178 | 180 | this.getcompanyOptions(); |
| 179 | - this.getwebsitePlatformOptions(); | |
| 181 | + // this.getwebsitePlatformOptions(); | |
| 180 | 182 | }, |
| 181 | 183 | methods: { |
| 182 | 184 | getharmfulInformationTypesOptions() { |
| ... | ... | @@ -218,6 +220,33 @@ export default { |
| 218 | 220 | this.listLoading = false; |
| 219 | 221 | }); |
| 220 | 222 | }, |
| 223 | + // 导出 | |
| 224 | + toExport() { | |
| 225 | + let _query = { | |
| 226 | + ...this.query, | |
| 227 | + }; | |
| 228 | + let query = {}; | |
| 229 | + for (let key in _query) { | |
| 230 | + if (Array.isArray(_query[key])) { | |
| 231 | + query[key] = _query[key].join(); | |
| 232 | + } else { | |
| 233 | + query[key] = _query[key]; | |
| 234 | + } | |
| 235 | + } | |
| 236 | + this.exportBtnLoading = true; | |
| 237 | + request({ | |
| 238 | + url: `/extend/BaseListHazardousSamples/Actions/Export`, | |
| 239 | + method: "POST", | |
| 240 | + data: query, | |
| 241 | + }).then((res) => { | |
| 242 | + const url = process.env.VUE_APP_BASE_API + res.data.url; | |
| 243 | + const link = document.createElement("a"); | |
| 244 | + link.href = url; | |
| 245 | + link.download = res.data.name; | |
| 246 | + link.click(); | |
| 247 | + this.exportBtnLoading = false; | |
| 248 | + }).catch(() => this.exportBtnLoading = false); | |
| 249 | + }, | |
| 221 | 250 | handleDel(id) { |
| 222 | 251 | this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", { |
| 223 | 252 | type: "warning", | ... | ... |
src/views/basePrincipalResponsibility/Form.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" :visible.sync="visible" class="NCC-dialog NCC-dialog_center" lock-scroll width="50%"> | |
| 2 | + <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" :visible.sync="visible" class="NCC-dialog NCC-dialog_center basePrincipalResponsibilityForm" lock-scroll width="40%" v-loading="dialogLoading"> | |
| 3 | 3 | <el-row :gutter="15" class="NCC-dialog-content" > |
| 4 | - <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" :disabled="!!isDetail" :rules="rules"> | |
| 4 | + <el-form ref="elForm" :model="dataForm" size="small" label-width="110px" label-position="right" :disabled="!!isDetail" :rules="rules"> | |
| 5 | 5 | <el-col :span="24" v-if="false" > |
| 6 | 6 | <el-form-item label="主键" prop="id"> |
| 7 | 7 | <el-input v-model="dataForm.id" placeholder="请输入" clearable :style='{"width":"100%"}' > |
| ... | ... | @@ -10,17 +10,21 @@ |
| 10 | 10 | </el-col> |
| 11 | 11 | <el-col :span="24" v-if="ncc.hasFormP('fileName')"> |
| 12 | 12 | <el-form-item label="文件名" prop="fileName"> |
| 13 | - <el-input v-model="dataForm.fileName" placeholder="请输入" clearable :style='{"width":"100%"}' > | |
| 14 | - </el-input> | |
| 13 | + <el-input v-model="dataForm.fileName" placeholder="请输入文件名" clearable :style='{"width":"100%"}' /> | |
| 15 | 14 | </el-form-item> |
| 16 | 15 | </el-col> |
| 17 | 16 | <el-col :span="24" v-if="ncc.hasFormP('fileType')"> |
| 18 | 17 | <el-form-item label="文件类型" prop="fileType"> |
| 19 | - <el-radio-group v-model="dataForm.fileType" :style='{}' > | |
| 18 | + <el-radio-group v-model="dataForm.fileType"> | |
| 20 | 19 | <el-radio v-for="(item, index) in fileTypeOptions" :key="index" :label="item.id" >{{item.fullName}}</el-radio> |
| 21 | 20 | </el-radio-group> |
| 22 | 21 | </el-form-item> |
| 23 | 22 | </el-col> |
| 23 | + <el-col :span="24" v-if="ncc.hasFormP('otherFileType')" v-show="dataForm.fileType == '0'"> | |
| 24 | + <el-form-item label="其他文件类型" prop="otherFileType"> | |
| 25 | + <el-input v-model="dataForm.otherFileType" placeholder="请输入其他文件类型" clearable :style='{"width":"100%"}' /> | |
| 26 | + </el-form-item> | |
| 27 | + </el-col> | |
| 24 | 28 | <el-col :span="24" v-if="ncc.hasFormP('timeTakingEffect')"> |
| 25 | 29 | <el-form-item label="生效时间" prop="timeTakingEffect"> |
| 26 | 30 | <el-date-picker v-model="dataForm.timeTakingEffect" placeholder="请选择" clearable :style='{"width":"100%"}' type='date' format="yyyy-MM-dd" value-format="timestamp" > |
| ... | ... | @@ -79,10 +83,18 @@ |
| 79 | 83 | components: {}, |
| 80 | 84 | props: [], |
| 81 | 85 | data() { |
| 86 | + var validateOtherFileType = (rule, value, callback) => { | |
| 87 | + if (this.dataForm.fileType == '0' && !value) { | |
| 88 | + callback(new Error('请输入其他文件类型')); | |
| 89 | + } else { | |
| 90 | + callback(); | |
| 91 | + } | |
| 92 | + } | |
| 82 | 93 | return { |
| 83 | 94 | loading: false, |
| 84 | 95 | visible: false, |
| 85 | 96 | isDetail: false, |
| 97 | + dialogLoading: false, | |
| 86 | 98 | dataForm: { |
| 87 | 99 | id:'', |
| 88 | 100 | id:undefined, |
| ... | ... | @@ -95,8 +107,12 @@ |
| 95 | 107 | creatorTime:undefined, |
| 96 | 108 | lastModifyUserId:undefined, |
| 97 | 109 | lastModifyTime:undefined, |
| 110 | + otherFileType: undefined, | |
| 98 | 111 | }, |
| 99 | 112 | rules: { |
| 113 | + fileName: [{ required: true, message: '请输入文件名称', trigger: 'blur' }], | |
| 114 | + fileType: [{ required: true, message: '请选择文件类型', trigger: 'blur' }], | |
| 115 | + otherFileType: [{ validator: validateOtherFileType, trigger: 'blur' }], | |
| 100 | 116 | }, |
| 101 | 117 | fileTypeOptions : [], |
| 102 | 118 | btnLoading: false, |
| ... | ... | @@ -112,7 +128,7 @@ |
| 112 | 128 | methods: { |
| 113 | 129 | getfileTypeOptions(){ |
| 114 | 130 | getDictionaryDataSelector('577087166203561221').then(res => { |
| 115 | - this.fileTypeOptions = res.data.list | |
| 131 | + this.fileTypeOptions = [...res.data.list, { fullName: '其他', id: '0' }] | |
| 116 | 132 | }); |
| 117 | 133 | }, |
| 118 | 134 | goBack() { |
| ... | ... | @@ -125,19 +141,34 @@ |
| 125 | 141 | this.$nextTick(() => { |
| 126 | 142 | this.$refs['elForm'].resetFields(); |
| 127 | 143 | if (this.dataForm.id) { |
| 144 | + this.dialogLoading = true; | |
| 128 | 145 | request({ |
| 129 | 146 | url: '/Extend/BasePrincipalResponsibility/' + this.dataForm.id, |
| 130 | 147 | method: 'get' |
| 131 | 148 | }).then(res =>{ |
| 132 | 149 | this.dataForm = res.data; |
| 150 | + this.setTileType(res.data.fileType); | |
| 133 | 151 | if(!this.dataForm.fileUrl)this.dataForm.fileUrl=[]; |
| 134 | - }) | |
| 152 | + this.dialogLoading = false; | |
| 153 | + }).catch(() => this.dialogLoading = false) | |
| 135 | 154 | } |
| 136 | 155 | }) |
| 137 | 156 | }, |
| 157 | + setTileType(val) { | |
| 158 | + let index = this.fileTypeOptions.findIndex(v => v.id == val); | |
| 159 | + if(index == -1 || index == (this.fileTypeOptions.length - 1)) { | |
| 160 | + this.dataForm.fileType = '0'; | |
| 161 | + this.dataForm.otherFileType = val; | |
| 162 | + } else { | |
| 163 | + this.dataForm.fileType = val; | |
| 164 | + this.dataForm.otherFileType = ''; | |
| 165 | + } | |
| 166 | + }, | |
| 138 | 167 | dataFormSubmit() { |
| 139 | 168 | this.$refs['elForm'].validate((valid) => { |
| 169 | + console.log(valid); | |
| 140 | 170 | if (valid) { |
| 171 | + this.dataForm.fileType = this.dataForm.fileType == '0' ? this.dataForm.otherFileType : this.dataForm.fileType; | |
| 141 | 172 | this.btnLoading = true; |
| 142 | 173 | if (!this.dataForm.id) { |
| 143 | 174 | request({ |
| ... | ... | @@ -149,12 +180,9 @@ |
| 149 | 180 | message: res.msg, |
| 150 | 181 | type: 'success', |
| 151 | 182 | duration: 1000, |
| 152 | - onClose: () => { | |
| 153 | - this.btnLoading = false, | |
| 154 | - this.visible = false, | |
| 155 | - this.$emit('refresh', true) | |
| 156 | - } | |
| 157 | 183 | }) |
| 184 | + this.visible = false; | |
| 185 | + this.$emit('refresh', true); | |
| 158 | 186 | }).catch(() => this.btnLoading = false); |
| 159 | 187 | } else { |
| 160 | 188 | request({ |
| ... | ... | @@ -166,12 +194,9 @@ |
| 166 | 194 | message: res.msg, |
| 167 | 195 | type: 'success', |
| 168 | 196 | duration: 1000, |
| 169 | - onClose: () => { | |
| 170 | - this.btnLoading = false, | |
| 171 | - this.visible = false | |
| 172 | - this.$emit('refresh', true) | |
| 173 | - } | |
| 174 | 197 | }) |
| 198 | + this.visible = false; | |
| 199 | + this.$emit('refresh', true); | |
| 175 | 200 | }).catch(() => this.btnLoading = false); |
| 176 | 201 | } |
| 177 | 202 | } |
| ... | ... | @@ -180,3 +205,10 @@ |
| 180 | 205 | } |
| 181 | 206 | } |
| 182 | 207 | </script> |
| 208 | +<style lang="scss" scoped> | |
| 209 | +.basePrincipalResponsibilityForm { | |
| 210 | + :deep(.el-radio) { | |
| 211 | + margin: 0 30px 8px 0; | |
| 212 | + } | |
| 213 | +} | |
| 214 | +</style> | ... | ... |
src/views/basePrincipalResponsibility/index.vue
| ... | ... | @@ -6,108 +6,44 @@ |
| 6 | 6 | <div class="NCC-common-layout-center"> |
| 7 | 7 | <el-row class="NCC-common-search-box" :gutter="16"> |
| 8 | 8 | <el-form @submit.native.prevent size="mini"> |
| 9 | - <el-col :span="4"> | |
| 9 | + <el-col :span="6"> | |
| 10 | 10 | <el-form-item label=""> |
| 11 | - <el-input | |
| 12 | - v-model="query.fileName" | |
| 13 | - placeholder="文件名" | |
| 14 | - clearable | |
| 15 | - /> | |
| 11 | + <el-input v-model="query.fileName" placeholder="请输入文件名" clearable/> | |
| 16 | 12 | </el-form-item> |
| 17 | 13 | </el-col> |
| 18 | - <el-col :span="4"> | |
| 14 | + <el-col :span="6"> | |
| 19 | 15 | <el-form-item label=""> |
| 20 | - <el-select v-model="query.fileType" placeholder="文件类型"> | |
| 21 | - <el-option | |
| 22 | - v-for="(item, index) in fileTypeOptions" | |
| 23 | - :key="index" | |
| 24 | - :label="item.fullName" | |
| 25 | - :value="item.id" | |
| 26 | - /> | |
| 27 | - </el-select> | |
| 16 | + <el-input v-model="query.fileType" placeholder="请输入文件类型" clearable/> | |
| 28 | 17 | </el-form-item> |
| 29 | 18 | </el-col> |
| 30 | 19 | <el-col :span="4"> |
| 31 | 20 | <el-form-item> |
| 32 | - <el-button | |
| 33 | - type="primary" | |
| 34 | - icon="el-icon-search" | |
| 35 | - @click="search()" | |
| 36 | - >查询</el-button | |
| 37 | - > | |
| 21 | + <el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button> | |
| 38 | 22 | </el-form-item> |
| 39 | 23 | </el-col> |
| 40 | 24 | </el-form> |
| 41 | 25 | <div class="NCC-common-search-box-right"> |
| 42 | - <el-button type="primary" icon="el-icon-download" size="mini" @click="exportData()">导出</el-button> | |
| 26 | + <el-button type="success" icon="el-icon-plus" @click="addOrUpdateHandle()" size="mini" >新增</el-button> | |
| 27 | + <!-- <el-button type="primary" icon="el-icon-download" size="mini" @click="exportData()">导出</el-button> --> | |
| 43 | 28 | </div> |
| 44 | 29 | </el-row> |
| 45 | 30 | <div class="NCC-common-layout-main NCC-flex-main"> |
| 46 | - <div class="NCC-common-head"> | |
| 47 | - <div> | |
| 48 | - <el-button | |
| 49 | - type="primary" | |
| 50 | - icon="el-icon-plus" | |
| 51 | - @click="addOrUpdateHandle()" | |
| 52 | - size="mini" | |
| 53 | - >新增</el-button | |
| 54 | - > | |
| 55 | - </div> | |
| 56 | - </div> | |
| 57 | 31 | <NCC-table v-loading="listLoading" :data="list"> |
| 58 | - <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> | |
| 32 | + <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> --> | |
| 59 | 33 | <el-table-column prop="fileName" label="文件名" align="left" show-overflow-tooltip/> |
| 60 | 34 | <el-table-column label="文件类型" prop="fileType" align="left" show-overflow-tooltip> |
| 61 | - <template slot-scope="scope">{{ | |
| 62 | - scope.row.fileType | dynamicText(fileTypeOptions) | |
| 63 | - }}</template> | |
| 35 | + <template slot-scope="scope">{{ scope.row.fileType | dynamicText(fileTypeOptions) }}</template> | |
| 64 | 36 | </el-table-column> |
| 65 | - <el-table-column | |
| 66 | - prop="timeTakingEffect" | |
| 67 | - label="生效时间" | |
| 68 | - align="left" | |
| 69 | - show-overflow-tooltip | |
| 70 | - /> | |
| 37 | + <el-table-column prop="timeTakingEffect" label="生效时间" align="left" show-overflow-tooltip :formatter="ncc.tableDateFormat"/> | |
| 71 | 38 | <el-table-column prop="content" label="具体内容" align="left" /> |
| 72 | - <el-table-column | |
| 73 | - prop="creatorUserId" | |
| 74 | - label="创建用户" | |
| 75 | - align="left" | |
| 76 | - show-overflow-tooltip | |
| 77 | - /> | |
| 78 | - <el-table-column | |
| 79 | - prop="creatorTime" | |
| 80 | - label="创建时间" | |
| 81 | - :formatter="ncc.tableDateFormat" | |
| 82 | - align="left" | |
| 83 | - show-overflow-tooltip | |
| 84 | - /> | |
| 85 | - <el-table-column | |
| 86 | - prop="lastModifyUserId" | |
| 87 | - label="修改用户" | |
| 88 | - show-overflow-tooltip | |
| 89 | - align="left" | |
| 90 | - /> | |
| 91 | - <el-table-column | |
| 92 | - prop="lastModifyTime" | |
| 93 | - :formatter="ncc.tableDateFormat" | |
| 94 | - label="修改时间" | |
| 95 | - align="left" | |
| 96 | - show-overflow-tooltip | |
| 97 | - /> | |
| 39 | + <!-- <el-table-column prop="creatorUserId" label="创建用户" align="left" show-overflow-tooltip/> --> | |
| 40 | + <el-table-column prop="creatorTime" label="创建时间" :formatter="ncc.tableDateFormat" align="left" show-overflow-tooltip/> | |
| 41 | + <!-- <el-table-column prop="lastModifyUserId" label="修改用户" show-overflow-tooltip align="left"/> --> | |
| 42 | + <!-- <el-table-column prop="lastModifyTime" :formatter="ncc.tableDateFormat" label="修改时间" align="left" show-overflow-tooltip/> --> | |
| 98 | 43 | <el-table-column label="操作" fixed="right" width="100"> |
| 99 | 44 | <template slot-scope="scope"> |
| 100 | - <el-button | |
| 101 | - type="text" | |
| 102 | - @click="addOrUpdateHandle(scope.row.id)" | |
| 103 | - >编辑</el-button | |
| 104 | - > | |
| 105 | - <el-button | |
| 106 | - type="text" | |
| 107 | - @click="handleDel(scope.row.id)" | |
| 108 | - class="NCC-table-delBtn" | |
| 109 | - >删除</el-button | |
| 110 | - > | |
| 45 | + <el-button type="text" @click="addOrUpdateHandle(scope.row.id)" >编辑</el-button> | |
| 46 | + <el-button type="text" @click="handleDel(scope.row.id)" class="NCC-table-delBtn" >删除</el-button> | |
| 111 | 47 | </template> |
| 112 | 48 | </el-table-column> |
| 113 | 49 | </NCC-table> | ... | ... |
src/views/baseSpecialAction/Form.vue
| ... | ... | @@ -29,7 +29,7 @@ |
| 29 | 29 | </el-input> |
| 30 | 30 | </el-form-item> |
| 31 | 31 | </el-col> |
| 32 | - <el-col :span="23" v-if="ncc.hasFormP('title') && !dataForm.id"> | |
| 32 | + <el-col :span="23" v-if="ncc.hasFormP('title')"> | |
| 33 | 33 | <el-form-item label="标题" prop="title"> |
| 34 | 34 | <el-input |
| 35 | 35 | v-model="dataForm.title" |
| ... | ... | @@ -41,14 +41,14 @@ |
| 41 | 41 | </el-input> |
| 42 | 42 | </el-form-item> |
| 43 | 43 | </el-col> |
| 44 | - <el-col :span="23" v-if="ncc.hasFormP('content') && !dataForm.id"> | |
| 44 | + <el-col :span="23" v-if="ncc.hasFormP('content')"> | |
| 45 | 45 | <el-form-item label="内容" prop="content"> |
| 46 | 46 | <el-input v-model="dataForm.content" placeholder="请输入" show-word-limit :style="{ width: '100%' }" |
| 47 | 47 | type="textarea" :autosize="{ minRows: 4, maxRows: 4 }"> |
| 48 | 48 | </el-input> |
| 49 | 49 | </el-form-item> |
| 50 | 50 | </el-col> |
| 51 | - <el-col :span="23" v-if="ncc.hasFormP('annex') && !dataForm.id"> | |
| 51 | + <el-col :span="23" v-if="ncc.hasFormP('annex')"> | |
| 52 | 52 | <el-form-item label="附件" prop="annex"> |
| 53 | 53 | <NCC-UploadFz |
| 54 | 54 | v-model="dataForm.annex" |
| ... | ... | @@ -67,10 +67,11 @@ |
| 67 | 67 | v-for="(item, index) in areaOptions" |
| 68 | 68 | :key="index" |
| 69 | 69 | :label="item.id" |
| 70 | + :disabled="editType == '已发布并部署' || editType == '已发布'" | |
| 70 | 71 | >{{ item.fullName }}</el-checkbox |
| 71 | 72 | > |
| 72 | 73 | </el-checkbox-group> |
| 73 | - <div style="margin-top: 10px"> | |
| 74 | + <div style="margin-top: 10px" v-if="!editType || editType == '已存档'"> | |
| 74 | 75 | <el-button size="mini" @click="selectAreaAll('area')">全选</el-button> |
| 75 | 76 | <el-button size="mini" @click="closeAreaAll('area')">反选</el-button> |
| 76 | 77 | </div> |
| ... | ... | @@ -83,29 +84,31 @@ |
| 83 | 84 | v-for="(item, index) in communicationOutOptions" |
| 84 | 85 | :key="index" |
| 85 | 86 | :label="item.id" |
| 87 | + :disabled="editType == '已发布并部署' || editType == '已发布'" | |
| 86 | 88 | >{{ item.fullName }}</el-checkbox |
| 87 | 89 | > |
| 88 | 90 | </el-checkbox-group> |
| 89 | - <div style="margin-top: 10px"> | |
| 91 | + <div style="margin-top: 10px" v-if="!editType || editType == '已存档'"> | |
| 90 | 92 | <el-button size="mini" @click="selectAreaAll">全选</el-button> |
| 91 | 93 | <el-button size="mini" @click="closeAreaAll">反选</el-button> |
| 92 | 94 | </div> |
| 93 | 95 | </el-form-item> |
| 94 | 96 | </el-col> |
| 95 | - <el-col :span="23" v-if="ncc.hasFormP('relationId') && dataForm.id"> | |
| 97 | + <el-col :span="23" v-if="ncc.hasFormP('relationId')"> | |
| 96 | 98 | <el-form-item label="填报表单" prop="relationId"> |
| 97 | - <el-select v-model="dataForm.relationId" placeholder="请选择专项行动填报表单" style="margin-right: 10px;width: 300px;"> | |
| 99 | + <el-select v-model="dataForm.relationId" placeholder="请选择专项行动填报表单" style="margin-right: 10px;width: 300px;" :disabled="editType == '已发布并部署'"> | |
| 98 | 100 | <el-option v-for="item in BaseList" :key="item.id" :label="item.fullName" :value="item.id"> |
| 99 | 101 | </el-option> |
| 100 | 102 | </el-select> |
| 101 | 103 | <el-button size="mini" type="text" @click="dialogVisible = true">没有找到表单?点击设计表单</el-button> |
| 102 | 104 | </el-form-item> |
| 103 | 105 | </el-col> |
| 104 | - <el-col :span="23" v-if="ncc.hasFormP('deadline') && dataForm.id"> | |
| 106 | + <el-col :span="23" v-if="ncc.hasFormP('deadline')"> | |
| 105 | 107 | <el-form-item label="截止日期" prop="deadline"> |
| 106 | 108 | <el-date-picker |
| 107 | 109 | v-model="dataForm.deadline" |
| 108 | 110 | type="date" |
| 111 | + :disabled="editType == '已发布并部署'" | |
| 109 | 112 | placeholder="选择截止日期"> |
| 110 | 113 | </el-date-picker> |
| 111 | 114 | </el-form-item> |
| ... | ... | @@ -113,8 +116,10 @@ |
| 113 | 116 | </el-form> |
| 114 | 117 | </el-row> |
| 115 | 118 | <span slot="footer" class="dialog-footer"> |
| 116 | - <el-button @click="visible = false">取 消</el-button> | |
| 117 | - <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail" :loading="btnLoading">确 定</el-button> | |
| 119 | + <el-button type="primary" @click="visible = false">取 消</el-button> | |
| 120 | + <el-button type="primary" @click="dataFormSubmit(0)" v-if="!isDetail" :loading="btnLoading">保 存</el-button> | |
| 121 | + <el-button type="primary" @click="dataFormSubmit(1)" v-if="!isDetail" :loading="btnLoading">发 布</el-button> | |
| 122 | + <el-button type="primary" @click="dataFormSubmit(2)" v-if="!isDetail" :loading="btnLoading">发布并反馈</el-button> | |
| 118 | 123 | </span> |
| 119 | 124 | <el-dialog class="zxDialog" title="专项行动表单设计" :visible.sync="dialogVisible" fullscreen @close="handleClose" :modal="false"> |
| 120 | 125 | <iframe |
| ... | ... | @@ -135,14 +140,28 @@ export default { |
| 135 | 140 | components: {}, |
| 136 | 141 | props: [], |
| 137 | 142 | data() { |
| 143 | + var validatecommunicationArea = (rule, value, callback) => { | |
| 144 | + if (!this.dataForm.communicationOut.length && !value.length) { | |
| 145 | + callback(new Error('传输区域和传输外协不能同时为空!')); | |
| 146 | + } else { | |
| 147 | + callback(); | |
| 148 | + } | |
| 149 | + }; | |
| 150 | + var validatecommunicationOut = (rule, value, callback) => { | |
| 151 | + if (!this.dataForm.communicationArea.length && !value.length) { | |
| 152 | + callback(new Error('传输区域和传输外协不能同时为空!')); | |
| 153 | + } else { | |
| 154 | + callback(); | |
| 155 | + } | |
| 156 | + }; | |
| 138 | 157 | return { |
| 139 | 158 | loading: false, |
| 140 | 159 | visible: false, |
| 141 | 160 | isDetail: false, |
| 161 | + editType: '', // 修改类型 | |
| 142 | 162 | dataForm: { |
| 143 | 163 | id: "", |
| 144 | 164 | id: undefined, |
| 145 | - specialActionType: undefined, | |
| 146 | 165 | title: undefined, |
| 147 | 166 | content: undefined, |
| 148 | 167 | releaseTime: undefined, |
| ... | ... | @@ -158,34 +177,12 @@ export default { |
| 158 | 177 | relationId: undefined, |
| 159 | 178 | }, |
| 160 | 179 | rules: { |
| 161 | - specialActionType: [ | |
| 162 | - { | |
| 163 | - required: true, | |
| 164 | - message: "请输入类型", | |
| 165 | - trigger: "change", | |
| 166 | - }, | |
| 167 | - ], | |
| 168 | - title: [ | |
| 169 | - { | |
| 170 | - required: true, | |
| 171 | - message: "请输入标题", | |
| 172 | - trigger: "blur", | |
| 173 | - }, | |
| 174 | - ], | |
| 175 | - deadline: [ | |
| 176 | - { | |
| 177 | - required: true, | |
| 178 | - message: "请输入截止日期", | |
| 179 | - trigger: "change", | |
| 180 | - } | |
| 181 | - ], | |
| 182 | - relationId: [ | |
| 183 | - { | |
| 184 | - required: true, | |
| 185 | - message: "请选择关联表单", | |
| 186 | - trigger: "change", | |
| 187 | - } | |
| 188 | - ] | |
| 180 | + title: [{ required: true, message: "请输入标题", trigger: "blur" }], | |
| 181 | + content: [{ required: true, message: "请输入内容", trigger: "blur" }], | |
| 182 | + communicationArea: [{validator: validatecommunicationArea, trigger: 'blur'}], | |
| 183 | + communicationOut: [{validator: validatecommunicationOut, trigger: 'blur'}], | |
| 184 | + relationId: [{ required: true, message: "请选择专项行动填报表单", trigger: "blur"}], | |
| 185 | + deadline: [{ required: true, message: "请选择截止日期", trigger: "blur" }], | |
| 189 | 186 | }, |
| 190 | 187 | areaOptions: [], |
| 191 | 188 | communicationOutOptions: [], |
| ... | ... | @@ -228,7 +225,6 @@ export default { |
| 228 | 225 | method: "get", |
| 229 | 226 | }).then((res) => { |
| 230 | 227 | this.BaseList = res.data.list[0].children; |
| 231 | - console.log(this.BaseList) | |
| 232 | 228 | }); |
| 233 | 229 | }, |
| 234 | 230 | async initAreaTypeList() { |
| ... | ... | @@ -277,60 +273,78 @@ export default { |
| 277 | 273 | this.dataForm.id = row ? row.id : ''; |
| 278 | 274 | this.visible = true; |
| 279 | 275 | this.isDetail = isDetail || false; |
| 276 | + this.editType = row ? row.state : ''; | |
| 280 | 277 | this.$nextTick(() => { |
| 281 | 278 | this.$refs["elForm"].resetFields(); |
| 282 | 279 | if(this.dataForm.id) { |
| 283 | - this.dataForm.communicationArea = JSON.parse(row.communicationArea); | |
| 284 | - this.dataForm.communicationOut = JSON.parse(row.communicationOut); | |
| 280 | + request({ | |
| 281 | + url: `/Extend/BaseSpecialAction/${this.dataForm.id} `, | |
| 282 | + method: "GET", | |
| 283 | + }).then((res) => { | |
| 284 | + this.dataForm = res.data; | |
| 285 | + this.dataForm.annex = res.data.annex == null ? [] : res.data.annex; | |
| 286 | + }) | |
| 285 | 287 | } |
| 286 | 288 | }); |
| 287 | 289 | }, |
| 288 | - dataFormSubmit() { | |
| 289 | - this.$refs["elForm"].validate((valid) => { | |
| 290 | - if (valid) { | |
| 291 | - this.btnLoading = true; | |
| 292 | - if (!this.dataForm.id) { | |
| 293 | - let {title, content, annex, communicationArea, communicationOut} = this.dataForm; | |
| 294 | - // 新增 | |
| 295 | - request({ | |
| 296 | - url: `/Extend/BaseSpecialAction`, | |
| 297 | - method: "post", | |
| 298 | - data: { title, content, annex, communicationArea, communicationOut }, | |
| 299 | - }).then((res) => { | |
| 300 | - this.$message({ | |
| 301 | - message: res.msg, | |
| 302 | - type: "success", | |
| 303 | - duration: 1000, | |
| 304 | - onClose: () => { | |
| 305 | - this.btnLoading = false; | |
| 306 | - (this.visible = false), this.$emit("refresh", true); | |
| 307 | - }, | |
| 308 | - }); | |
| 309 | - }).catch(() => this.btnLoading = false); | |
| 310 | - } else { | |
| 311 | - // 发布任务 | |
| 312 | - request({ | |
| 313 | - url: "/Extend/BaseSpecialAction/Release", | |
| 314 | - method: "PUT", | |
| 315 | - data: this.dataForm, | |
| 316 | - }).then((res) => { | |
| 317 | - this.$message({ | |
| 318 | - message: res.msg, | |
| 319 | - type: "success", | |
| 320 | - duration: 1000, | |
| 321 | - onClose: () => { | |
| 322 | - this.btnLoading = false; | |
| 323 | - this.visible = false; | |
| 324 | - this.$emit("refresh", true); | |
| 325 | - }, | |
| 326 | - }); | |
| 327 | - }).catch(() => this.btnLoading = false); | |
| 328 | - } | |
| 290 | + dataFormSubmit(type) { | |
| 291 | + this.validateForm(type, () => { | |
| 292 | + let obj = { | |
| 293 | + ...this.dataForm, | |
| 294 | + state: type | |
| 329 | 295 | } |
| 296 | + let url = !this.dataForm.id ? '/Extend/BaseSpecialAction/Release' : '/Extend/BaseSpecialAction/Update'; | |
| 297 | + let method = !this.dataForm.id ? 'PUT' : 'POST'; | |
| 298 | + this.toPostForm(url, method, obj); | |
| 330 | 299 | }); |
| 331 | 300 | }, |
| 301 | + validateForm(type, callback) { | |
| 302 | + let list = ['title', 'content']; | |
| 303 | + switch (type) { | |
| 304 | + case 0: | |
| 305 | + list = ['title', 'content']; | |
| 306 | + break; | |
| 307 | + case 1: | |
| 308 | + list = ['title', 'content', 'communicationArea', 'communicationOut']; | |
| 309 | + break; | |
| 310 | + case 2: | |
| 311 | + list = ['title', 'content', 'communicationArea', 'communicationOut', 'relationId', 'deadline']; | |
| 312 | + break; | |
| 313 | + | |
| 314 | + default: | |
| 315 | + break; | |
| 316 | + } | |
| 317 | + let Promises = list.map(v => new Promise((resolve, reject) => this.$refs["elForm"].validateField(v, err => resolve(err)))); | |
| 318 | + Promise.all(Promises).then(values => { | |
| 319 | + if(values.filter(item =>item).length) { | |
| 320 | + return | |
| 321 | + } else { | |
| 322 | + callback && callback(values); | |
| 323 | + } | |
| 324 | + }); | |
| 325 | + }, | |
| 326 | + toPostForm(url, method, obj, callback) { | |
| 327 | + this.btnLoading = true; | |
| 328 | + request({ | |
| 329 | + url, | |
| 330 | + method, | |
| 331 | + data: obj, | |
| 332 | + }).then((res) => { | |
| 333 | + this.$message({ | |
| 334 | + message: res.msg, | |
| 335 | + type: "success", | |
| 336 | + duration: 1000, | |
| 337 | + onClose: () => { | |
| 338 | + callback && callback(); | |
| 339 | + this.btnLoading = false; | |
| 340 | + (this.visible = false), this.$emit("refresh", true); | |
| 341 | + }, | |
| 342 | + }); | |
| 343 | + }).catch(() => this.btnLoading = false); | |
| 344 | + } | |
| 332 | 345 | }, |
| 333 | 346 | }; |
| 347 | + | |
| 334 | 348 | </script> |
| 335 | 349 | <style lang="scss" scoped> |
| 336 | 350 | </style> | ... | ... |
src/views/baseSpecialAction/index.vue
| ... | ... | @@ -37,13 +37,9 @@ |
| 37 | 37 | </div> |
| 38 | 38 | </div> |
| 39 | 39 | <NCC-table v-loading="listLoading" :data="list"> |
| 40 | - <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> | |
| 40 | + <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> --> | |
| 41 | 41 | <el-table-column prop="title" label="标题" align="left" show-overflow-tooltip/> |
| 42 | - <el-table-column prop="state" label="状态" align="left" show-overflow-tooltip width="80"> | |
| 43 | - <template slot-scope="scope"> | |
| 44 | - <el-tag :type="scope.row.state == '已发布' ? 'success' : 'warning'">{{scope.row.state}}</el-tag> | |
| 45 | - </template> | |
| 46 | - </el-table-column> | |
| 42 | + | |
| 47 | 43 | <el-table-column prop="creatorTime" label="发布时间" align="left" :formatter="ncc.tableDateFormat" show-overflow-tooltip/> |
| 48 | 44 | <el-table-column label="传达区域" prop="communicationArea" align="left" show-overflow-tooltip> |
| 49 | 45 | <template slot-scope="scope">{{ JSON.parse(scope.row.communicationArea) | dynamicText(communicationAreaOptions) }}</template> |
| ... | ... | @@ -51,16 +47,21 @@ |
| 51 | 47 | <el-table-column label="传达外协" prop="communicationOut" align="left" show-overflow-tooltip> |
| 52 | 48 | <template slot-scope="scope">{{ JSON.parse(scope.row.communicationOut) | dynamicText(communicationOutOptions) }}</template> |
| 53 | 49 | </el-table-column> |
| 54 | - <el-table-column prop="deadline" label="截止日期" show-overflow-tooltip :formatter="ncc.tableDateFormat" width="175"> | |
| 50 | + <el-table-column prop="state" label="状态" align="left" show-overflow-tooltip width="100"> | |
| 51 | + <template slot-scope="scope"> | |
| 52 | + <el-tag :type="stateColor[`${scope.row.state}`]">{{scope.row.state}}</el-tag> | |
| 53 | + </template> | |
| 54 | + </el-table-column> | |
| 55 | + <el-table-column prop="deadline" label="截止日期" show-overflow-tooltip :formatter="ncc.tableDateFormat" width="200" align="left"> | |
| 55 | 56 | <template slot-scope="scope"> |
| 56 | 57 | <el-tag v-if="scope.row.deadline" :type="`${ncc.timeDeadLine(scope.row.deadline)}`">{{ncc.stateDeadLine(scope.row.deadline)}}{{ ncc.tableDateFormat(scope.row, 'deadline', scope.row.deadline) }}</el-tag> |
| 57 | 58 | </template> |
| 58 | 59 | </el-table-column> |
| 59 | - <el-table-column prop="creatorUserId" show-overflow-tooltip label="创建用户" align="left"/> | |
| 60 | - <el-table-column label="操作" fixed="right" width="100"> | |
| 60 | + <!-- <el-table-column prop="creatorUserId" show-overflow-tooltip label="创建用户" align="left"/> --> | |
| 61 | + <el-table-column label="操作" fixed="right" width="150"> | |
| 61 | 62 | <template slot-scope="scope"> |
| 62 | - <el-button type="text" @click="addOrUpdateHandle(scope.row)" v-if="scope.row.state == '未发布'">发布任务</el-button> | |
| 63 | - <el-button type="text" @click="toDetail(scope.row)" v-else>处理情况</el-button> | |
| 63 | + <el-button type="text" @click="addOrUpdateHandle(scope.row)">修改</el-button> | |
| 64 | + <el-button type="text" @click="toDetail(scope.row)" v-if="scope.row.state == '已发布并部署'">处理情况</el-button> | |
| 64 | 65 | </template> |
| 65 | 66 | </el-table-column> |
| 66 | 67 | </NCC-table> |
| ... | ... | @@ -101,6 +102,12 @@ export default { |
| 101 | 102 | InfoFormVisible: false, |
| 102 | 103 | communicationAreaOptions: [], |
| 103 | 104 | communicationOutOptions: [], |
| 105 | + stateColor: { | |
| 106 | + '已存档': "info", | |
| 107 | + '已发布': "warning", | |
| 108 | + '已发布并部署': "success", | |
| 109 | + '未发布': "", | |
| 110 | + }, | |
| 104 | 111 | }; |
| 105 | 112 | }, |
| 106 | 113 | async created() { | ... | ... |
src/views/overView/Overview.vue
| ... | ... | @@ -18,9 +18,13 @@ |
| 18 | 18 | <el-table-column type="index" width="40"> </el-table-column> |
| 19 | 19 | <el-table-column prop="taskTitle" label="任务名称" show-overflow-tooltip/> |
| 20 | 20 | <el-table-column prop="taskType" label="任务类型" show-overflow-tooltip width="100"/> |
| 21 | - <el-table-column prop="taskState" label="状态" show-overflow-tooltip width="80"/> | |
| 22 | 21 | <el-table-column prop="taskContent" label="任务内容" show-overflow-tooltip /> |
| 23 | - <el-table-column prop="deadLine" label="任务期限" show-overflow-tooltip :formatter="ncc.tableDateFormat" width="170"> | |
| 22 | + <el-table-column prop="taskState" label="状态" show-overflow-tooltip width="80"> | |
| 23 | + <template slot-scope="scope"> | |
| 24 | + <el-tag type="success">{{ scope.row.taskState }}</el-tag> | |
| 25 | + </template> | |
| 26 | + </el-table-column> | |
| 27 | + <el-table-column prop="deadLine" label="任务期限" show-overflow-tooltip :formatter="ncc.tableDateFormat" width="200"> | |
| 24 | 28 | <template slot-scope="scope"> |
| 25 | 29 | <el-tag :type="`${ncc.timeDeadLine(scope.row.deadLine)}`">{{ncc.stateDeadLine(scope.row.deadLine)}}{{ ncc.tableDateFormat(scope.row, 'deadLine', scope.row.deadLine) }}</el-tag> |
| 26 | 30 | </template> | ... | ... |