Commit 73755355953fb70bb66a63013f7a2e0df3c48328
1 parent
65aeaaa1
优化
Showing
24 changed files
with
688 additions
and
544 deletions
src/assets/style/common.scss
| ... | ... | @@ -68,10 +68,10 @@ a { |
| 68 | 68 | justify-content: flex-start; |
| 69 | 69 | align-items: center; |
| 70 | 70 | flex-direction: row; |
| 71 | - color: #757678; | |
| 71 | + color: #000; | |
| 72 | 72 | line-height: 30px; |
| 73 | 73 | .label { |
| 74 | - color: #000; | |
| 74 | + color: #757678; | |
| 75 | 75 | text-align: right; |
| 76 | 76 | padding: 0 5px; |
| 77 | 77 | &.w-100 { | ... | ... |
src/components/CompanyForm/index.vue
| ... | ... | @@ -11,13 +11,14 @@ |
| 11 | 11 | :visible.sync="visible" |
| 12 | 12 | lock-scroll |
| 13 | 13 | append-to-body |
| 14 | - width="60%" | |
| 14 | + width="70%" | |
| 15 | 15 | top="15vh" |
| 16 | 16 | :modal-append-to-body="false" |
| 17 | 17 | class="NCC-dialog NCC-dialog_center company-dialog" |
| 18 | 18 | > |
| 19 | - <el-form ref="elForm" :model="dataForm" size="small" label-width="120px" label-position="right" | |
| 20 | - :rules="rules" v-lodding="loading"> | |
| 19 | + <el-row :gutter="15" class="NCC-dialog-content"> | |
| 20 | + <el-form ref="elForm" :model="dataForm" size="small" label-width="120px" label-position="right" | |
| 21 | + :disabled="!!isDetail" :rules="rules"> | |
| 21 | 22 | <el-col :span="24" v-if="false"> |
| 22 | 23 | <el-form-item label="主键" prop="id"> |
| 23 | 24 | <el-input v-model="dataForm.id" placeholder="请输入" clearable :style='{ "width": "100%" }'> |
| ... | ... | @@ -26,61 +27,72 @@ |
| 26 | 27 | </el-col> |
| 27 | 28 | <el-col :span="24"> |
| 28 | 29 | <el-form-item label="运营主体名称" prop="companyName"> |
| 29 | - <el-input v-model="dataForm.companyName" placeholder="请输入" clearable required | |
| 30 | + <el-input v-model="dataForm.companyName" placeholder="请输入运营主体名称" clearable required | |
| 30 | 31 | :style='{ "width": "100%" }'> |
| 31 | 32 | </el-input> |
| 32 | 33 | </el-form-item> |
| 33 | 34 | </el-col> |
| 34 | 35 | <el-col :span="24"> |
| 35 | 36 | <el-form-item label="社会信用代" prop="socialCreditAgency"> |
| 36 | - <el-input v-model="dataForm.socialCreditAgency" placeholder="请输入" clearable | |
| 37 | + <el-input v-model="dataForm.socialCreditAgency" placeholder="请输入社会信用代" clearable | |
| 37 | 38 | :style='{ "width": "100%" }'> |
| 38 | 39 | </el-input> |
| 39 | 40 | </el-form-item> |
| 40 | 41 | </el-col> |
| 41 | 42 | <el-col :span="24"> |
| 42 | 43 | <el-form-item label="运营主体法人" prop="legalPerson"> |
| 43 | - <el-input v-model="dataForm.legalPerson" placeholder="请输入" clearable :style='{ "width": "100%" }'> | |
| 44 | + <el-input v-model="dataForm.legalPerson" placeholder="请输入运营主体法人" clearable :style='{ "width": "100%" }'> | |
| 44 | 45 | </el-input> |
| 45 | 46 | </el-form-item> |
| 46 | 47 | </el-col> |
| 47 | 48 | <el-col :span="24"> |
| 48 | 49 | <el-form-item label="运营主体地址" prop="address"> |
| 49 | - <el-input v-model="dataForm.address" placeholder="请输入" clearable :style='{ "width": "100%" }'> | |
| 50 | + <el-input v-model="dataForm.address" placeholder="请输入运营主体地址" clearable :style='{ "width": "100%" }'> | |
| 50 | 51 | </el-input> |
| 51 | 52 | </el-form-item> |
| 52 | 53 | </el-col> |
| 53 | 54 | <el-col :span="24"> |
| 54 | 55 | <el-form-item label="联系方式" prop="contactInformation"> |
| 55 | - <el-input v-model="dataForm.contactInformation" placeholder="请输入" clearable | |
| 56 | + <el-input v-model="dataForm.contactInformation" placeholder="请输入联系方式" clearable | |
| 56 | 57 | :style='{ "width": "100%" }'> |
| 57 | 58 | </el-input> |
| 58 | 59 | </el-form-item> |
| 59 | 60 | </el-col> |
| 60 | 61 | <el-col :span="24"> |
| 62 | + <el-form-item label="所属区县" prop="areaId"> | |
| 63 | + <el-radio-group v-model="dataForm.areaId" placeholder="请选择所属区县" style="line-height: 22px"> | |
| 64 | + <el-radio v-for="v in areaOptions" :key="v.id" :label="v.id">{{ v.fullName }}</el-radio> | |
| 65 | + </el-radio-group> | |
| 66 | + </el-form-item> | |
| 67 | + </el-col> | |
| 68 | + <el-col :span="24"> | |
| 61 | 69 | <el-form-item label="其他信息" prop="otherInfo"> |
| 62 | 70 | <NCC-Quill v-model="dataForm.otherInfo" placeholder="请输入内容..."> |
| 63 | 71 | </NCC-Quill> |
| 64 | 72 | </el-form-item> |
| 65 | 73 | </el-col> |
| 66 | 74 | </el-form> |
| 75 | + </el-row> | |
| 67 | 76 | <span slot="footer" class="dialog-footer"> |
| 68 | - <el-button @click="close">取消</el-button> | |
| 69 | - <el-button type="primary" @click="confirm" :loading="btnLoading">确认</el-button> | |
| 77 | + <el-button @click="visible = false">取消</el-button> | |
| 78 | + <el-button type="primary" @click="dataFormSubmit" :loading="btnLoading">确认</el-button> | |
| 70 | 79 | </span> |
| 71 | 80 | </el-dialog> |
| 72 | 81 | </div> |
| 73 | 82 | </template> |
| 74 | 83 | |
| 75 | 84 | <script> |
| 85 | +import infoMixin from "@/mixins/info"; | |
| 76 | 86 | import request from '@/utils/request' |
| 77 | 87 | export default { |
| 78 | 88 | name: "companyForm", |
| 79 | - props: {}, | |
| 89 | + mixins: [infoMixin], | |
| 90 | + props: {}, | |
| 80 | 91 | data() { |
| 81 | 92 | return { |
| 82 | 93 | visible: false, |
| 83 | 94 | loading: false, |
| 95 | + areaOptions: [], | |
| 84 | 96 | dataForm: { |
| 85 | 97 | id: '', |
| 86 | 98 | id: undefined, |
| ... | ... | @@ -113,7 +125,9 @@ export default { |
| 113 | 125 | }, |
| 114 | 126 | watch: {}, |
| 115 | 127 | mounted() {}, |
| 116 | - created() {}, | |
| 128 | + created() { | |
| 129 | + this.initAreaTypeList(); | |
| 130 | + }, | |
| 117 | 131 | methods: { |
| 118 | 132 | close() { |
| 119 | 133 | this.visible = false; |
| ... | ... | @@ -122,7 +136,7 @@ export default { |
| 122 | 136 | this.visible = true; |
| 123 | 137 | this.$refs['elForm'].resetFields(); |
| 124 | 138 | }, |
| 125 | - async confirm() { | |
| 139 | + async dataFormSubmit() { | |
| 126 | 140 | this.$refs['elForm'].validate((valid) => { |
| 127 | 141 | if (valid) { |
| 128 | 142 | this.btnLoading = true; | ... | ... |
src/components/InfoForm/index.vue
| ... | ... | @@ -376,13 +376,14 @@ export default { |
| 376 | 376 | }, |
| 377 | 377 | // 无限下拉 |
| 378 | 378 | nextCompanyList() { |
| 379 | - if (this.total_company == this.listQuery_company.length) return; | |
| 379 | + if (this.total_company != 0 && this.total_company == this.companyOptions.length) return; | |
| 380 | 380 | this.listQuery_company.pageIndex++; |
| 381 | 381 | this.initCompanyList(); |
| 382 | 382 | }, |
| 383 | 383 | async companyChange(val) { |
| 384 | 384 | // 公司信息 |
| 385 | 385 | let { data } = await getCompanyInfoById(val); |
| 386 | + if(!data) return; | |
| 386 | 387 | this.companyInfo = data; |
| 387 | 388 | this.isShowCompanyInfo = true; |
| 388 | 389 | }, | ... | ... |
src/styles/variables.scss
| ... | ... | @@ -12,6 +12,7 @@ $panGreen: #30B08F; |
| 12 | 12 | $menuText:#fff; |
| 13 | 13 | $menuActiveText:#409EFF; |
| 14 | 14 | $subMenuActiveText:#fff; // https://github.com/ElemeFE/element/issues/12951 |
| 15 | +// $subMenuActiveText: #e4e7ed3b; // https://github.com/ElemeFE/element/issues/12951 | |
| 15 | 16 | |
| 16 | 17 | $menuBg:#001529; |
| 17 | 18 | $menuHover:#1890ff; | ... | ... |
src/utils/ncc.js
| ... | ... | @@ -233,6 +233,12 @@ const ncc = { |
| 233 | 233 | return 'primary' |
| 234 | 234 | } |
| 235 | 235 | }, |
| 236 | + timeStartTime(time){ | |
| 237 | + if(!time) return; | |
| 238 | + let date = (new Date()).getTime(); | |
| 239 | + let timeDiff = (time - date) / (1000 * 60 * 60 * 24); | |
| 240 | + return Boolean(timeDiff < 1 && timeDiff > -1) | |
| 241 | + }, | |
| 236 | 242 | stateDeadLine(time){ |
| 237 | 243 | let date = (new Date()).getTime(); |
| 238 | 244 | let timeDiff = time - date; | ... | ... |
src/views/DisposalSuggestions/Form.vue
| ... | ... | @@ -11,80 +11,80 @@ |
| 11 | 11 | <el-row :gutter="15" class="NCC-dialog-content"> |
| 12 | 12 | <el-col :span="10" style="border-right: 1px solid #e6e6e6; height: 400px;"> |
| 13 | 13 | <el-row> |
| 14 | - <el-col :span="24" class="form_title"> 巡查上报详情 </el-col> | |
| 15 | - <el-col :span="24"> | |
| 16 | - <div class="form-item"> | |
| 17 | - <div class="label w-100">问题来源</div> | |
| 18 | - {{ dataForm.source || "--" }} | |
| 19 | - </div> | |
| 20 | - </el-col> | |
| 21 | - <el-col :span="24"> | |
| 22 | - <div class="form-item"> | |
| 23 | - <div class="label w-100">系统名称</div> | |
| 24 | - {{ dataForm.platformName || "--" }} | |
| 25 | - </div> | |
| 26 | - </el-col> | |
| 27 | - <el-col :span="24"> | |
| 28 | - <div class="form-item"> | |
| 29 | - <div class="label w-100">系统类型</div> | |
| 30 | - {{ dataForm.platformType || "--" }} | |
| 31 | - </div> | |
| 32 | - </el-col> | |
| 33 | - <el-col :span="24"> | |
| 34 | - <div class="form-item"> | |
| 35 | - <div class="label w-100">问题类型</div> | |
| 36 | - {{ dataForm.questionType || "--" }} | |
| 37 | - </div> | |
| 38 | - </el-col> | |
| 39 | - <template v-if="dataForm.questionType == '错误表述'"> | |
| 14 | + <el-col :span="24" class="form_title"> 巡查上报详情 </el-col> | |
| 40 | 15 | <el-col :span="24"> |
| 41 | 16 | <div class="form-item"> |
| 42 | - <div class="label w-100">正确描述</div> | |
| 43 | - {{ dataForm.accurateDescription || "--" }} | |
| 17 | + <div class="label w-100">问题来源:</div> | |
| 18 | + {{ dataForm.source || "--" }} | |
| 44 | 19 | </div> |
| 45 | 20 | </el-col> |
| 46 | 21 | <el-col :span="24"> |
| 47 | 22 | <div class="form-item"> |
| 48 | - <div class="label w-100">错误描述</div> | |
| 49 | - {{ dataForm.incorrectDescription || "--" }} | |
| 23 | + <div class="label w-100">系统名称:</div> | |
| 24 | + {{ dataForm.platformName || "--" }} | |
| 25 | + </div> | |
| 26 | + </el-col> | |
| 27 | + <el-col :span="24"> | |
| 28 | + <div class="form-item"> | |
| 29 | + <div class="label w-100">系统类型:</div> | |
| 30 | + {{ dataForm.platformType || "--" }} | |
| 31 | + </div> | |
| 32 | + </el-col> | |
| 33 | + <el-col :span="24"> | |
| 34 | + <div class="form-item"> | |
| 35 | + <div class="label w-100">问题类型:</div> | |
| 36 | + {{ dataForm.questionType || "--" }} | |
| 37 | + </div> | |
| 38 | + </el-col> | |
| 39 | + <template v-if="dataForm.questionType == '错误表述'"> | |
| 40 | + <el-col :span="24"> | |
| 41 | + <div class="form-item"> | |
| 42 | + <div class="label w-100">正确描述:</div> | |
| 43 | + {{ dataForm.accurateDescription || "--" }} | |
| 44 | + </div> | |
| 45 | + </el-col> | |
| 46 | + <el-col :span="24"> | |
| 47 | + <div class="form-item"> | |
| 48 | + <div class="label w-100">错误描述:</div> | |
| 49 | + {{ dataForm.incorrectDescription || "--" }} | |
| 50 | + </div> | |
| 51 | + </el-col> | |
| 52 | + </template> | |
| 53 | + <el-col :span="24"> | |
| 54 | + <div class="form-item"> | |
| 55 | + <div class="label w-100">关键词:</div> | |
| 56 | + {{ dataForm.questionClass || "--" }} | |
| 57 | + </div> | |
| 58 | + </el-col> | |
| 59 | + <el-col :span="24"> | |
| 60 | + <div class="form-item"> | |
| 61 | + <div class="label w-100">问题内容:</div> | |
| 62 | + {{ dataForm.questionContent || "--" }} | |
| 63 | + </div> | |
| 64 | + </el-col> | |
| 65 | + <el-col :span="24"> | |
| 66 | + <div class="form-item"> | |
| 67 | + <div class="label w-100">有害链接:</div> | |
| 68 | + {{ dataForm.link || "--" }} | |
| 69 | + </div> | |
| 70 | + </el-col> | |
| 71 | + <el-col :span="24"> | |
| 72 | + <div class="form-item"> | |
| 73 | + <div class="label w-100">取证内容:</div> | |
| 74 | + </div> | |
| 75 | + </el-col> | |
| 76 | + <el-col :span="24"> | |
| 77 | + <div class="form-item"> | |
| 78 | + <div class="label w-100">所属区域:</div> | |
| 79 | + {{ dataForm.areaName || "--" }} | |
| 80 | + </div> | |
| 81 | + </el-col> | |
| 82 | + <el-col :span="24" v-if="dataForm.disposalSuggestions"> | |
| 83 | + <div class="form-item"> | |
| 84 | + <div class="label w-100">区县处理说明:</div> | |
| 85 | + {{ dataForm.disposalSuggestions || "--" }} | |
| 50 | 86 | </div> |
| 51 | 87 | </el-col> |
| 52 | - </template> | |
| 53 | - <el-col :span="24"> | |
| 54 | - <div class="form-item"> | |
| 55 | - <div class="label w-100">关键词</div> | |
| 56 | - {{ dataForm.questionClass || "--" }} | |
| 57 | - </div> | |
| 58 | - </el-col> | |
| 59 | - <el-col :span="24"> | |
| 60 | - <div class="form-item"> | |
| 61 | - <div class="label w-100">问题内容</div> | |
| 62 | - {{ dataForm.questionContent || "--" }} | |
| 63 | - </div> | |
| 64 | - </el-col> | |
| 65 | - <el-col :span="24"> | |
| 66 | - <div class="form-item"> | |
| 67 | - <div class="label w-100">有害链接</div> | |
| 68 | - {{ dataForm.link || "--" }} | |
| 69 | - </div> | |
| 70 | - </el-col> | |
| 71 | - <el-col :span="24"> | |
| 72 | - <div class="form-item"> | |
| 73 | - <div class="label w-100">取证内容</div> | |
| 74 | - </div> | |
| 75 | - </el-col> | |
| 76 | - <el-col :span="24"> | |
| 77 | - <div class="form-item"> | |
| 78 | - <div class="label w-100">所属区域</div> | |
| 79 | - {{ dataForm.areaName || "--" }} | |
| 80 | - </div> | |
| 81 | - </el-col> | |
| 82 | - <el-col :span="24" v-if="dataForm.disposalSuggestions"> | |
| 83 | - <div class="form-item"> | |
| 84 | - <div class="label w-100">区县处理说明</div> | |
| 85 | - {{ dataForm.disposalSuggestions || "--" }} | |
| 86 | - </div> | |
| 87 | - </el-col> | |
| 88 | 88 | </el-row> |
| 89 | 89 | </el-col> |
| 90 | 90 | <el-col :span="14"> | ... | ... |
src/views/DisposalSuggestions/HandleForm.vue
| ... | ... | @@ -10,76 +10,76 @@ |
| 10 | 10 | > |
| 11 | 11 | <el-row :gutter="15" class="NCC-dialog-content"> |
| 12 | 12 | <el-col :span="10" style="border-right: 1px solid #e6e6e6; height: 400px;"> |
| 13 | - <el-row> | |
| 14 | - <el-col :span="24" class="form_title"> 巡查上报详情 </el-col> | |
| 15 | - <el-col :span="24"> | |
| 16 | - <div class="form-item"> | |
| 17 | - <div class="label w-100">问题来源</div> | |
| 18 | - {{ dataForm.source || "--" }} | |
| 19 | - </div> | |
| 20 | - </el-col> | |
| 21 | - <el-col :span="24"> | |
| 22 | - <div class="form-item"> | |
| 23 | - <div class="label w-100">系统名称</div> | |
| 24 | - {{ dataForm.platformName || "--" }} | |
| 25 | - </div> | |
| 26 | - </el-col> | |
| 27 | - <el-col :span="24"> | |
| 28 | - <div class="form-item"> | |
| 29 | - <div class="label w-100">系统类型</div> | |
| 30 | - {{ dataForm.platformType || "--" }} | |
| 31 | - </div> | |
| 32 | - </el-col> | |
| 33 | - <el-col :span="24"> | |
| 34 | - <div class="form-item"> | |
| 35 | - <div class="label w-100">问题类型</div> | |
| 36 | - {{ dataForm.questionType || "--" }} | |
| 37 | - </div> | |
| 38 | - </el-col> | |
| 39 | - <template v-if="dataForm.questionType == '错误表述'"> | |
| 13 | + <el-row> | |
| 14 | + <el-col :span="24" class="form_title"> 巡查上报详情 </el-col> | |
| 40 | 15 | <el-col :span="24"> |
| 41 | 16 | <div class="form-item"> |
| 42 | - <div class="label w-100">正确描述</div> | |
| 43 | - {{ dataForm.accurateDescription || "--" }} | |
| 17 | + <div class="label w-100">问题来源:</div> | |
| 18 | + {{ dataForm.source || "--" }} | |
| 44 | 19 | </div> |
| 45 | 20 | </el-col> |
| 46 | 21 | <el-col :span="24"> |
| 47 | 22 | <div class="form-item"> |
| 48 | - <div class="label w-100">错误描述</div> | |
| 49 | - {{ dataForm.incorrectDescription || "--" }} | |
| 23 | + <div class="label w-100">应用名称:</div> | |
| 24 | + {{ dataForm.platformName || "--" }} | |
| 50 | 25 | </div> |
| 51 | 26 | </el-col> |
| 52 | - </template> | |
| 53 | - <el-col :span="24"> | |
| 54 | - <div class="form-item"> | |
| 55 | - <div class="label w-100">关键词</div> | |
| 56 | - {{ dataForm.questionClass || "--" }} | |
| 57 | - </div> | |
| 58 | - </el-col> | |
| 59 | - <el-col :span="24"> | |
| 60 | - <div class="form-item"> | |
| 61 | - <div class="label w-100">问题内容</div> | |
| 62 | - {{ dataForm.questionContent || "--" }} | |
| 63 | - </div> | |
| 64 | - </el-col> | |
| 65 | - <el-col :span="24"> | |
| 66 | - <div class="form-item"> | |
| 67 | - <div class="label w-100">有害链接</div> | |
| 68 | - {{ dataForm.link || "--" }} | |
| 69 | - </div> | |
| 70 | - </el-col> | |
| 71 | - <el-col :span="24"> | |
| 72 | - <div class="form-item"> | |
| 73 | - <div class="label w-100">取证内容</div> | |
| 74 | - </div> | |
| 75 | - </el-col> | |
| 76 | - <el-col :span="24"> | |
| 77 | - <div class="form-item"> | |
| 78 | - <div class="label w-100">研判意见</div> | |
| 79 | - {{ dataForm.judgmentOpinions || "--" }} | |
| 80 | - </div> | |
| 81 | - </el-col> | |
| 82 | - </el-row> | |
| 27 | + <el-col :span="24"> | |
| 28 | + <div class="form-item"> | |
| 29 | + <div class="label w-100">应用类型:</div> | |
| 30 | + {{ dataForm.platformType || "--" }} | |
| 31 | + </div> | |
| 32 | + </el-col> | |
| 33 | + <el-col :span="24"> | |
| 34 | + <div class="form-item"> | |
| 35 | + <div class="label w-100">问题类型:</div> | |
| 36 | + {{ dataForm.questionType || "--" }} | |
| 37 | + </div> | |
| 38 | + </el-col> | |
| 39 | + <template v-if="dataForm.questionType == '错误表述'"> | |
| 40 | + <el-col :span="24"> | |
| 41 | + <div class="form-item"> | |
| 42 | + <div class="label w-100">正确描述:</div> | |
| 43 | + {{ dataForm.accurateDescription || "--" }} | |
| 44 | + </div> | |
| 45 | + </el-col> | |
| 46 | + <el-col :span="24"> | |
| 47 | + <div class="form-item"> | |
| 48 | + <div class="label w-100">错误描述:</div> | |
| 49 | + {{ dataForm.incorrectDescription || "--" }} | |
| 50 | + </div> | |
| 51 | + </el-col> | |
| 52 | + </template> | |
| 53 | + <el-col :span="24"> | |
| 54 | + <div class="form-item"> | |
| 55 | + <div class="label w-100">关键词</div> | |
| 56 | + {{ dataForm.questionClass || "--" }} | |
| 57 | + </div> | |
| 58 | + </el-col> | |
| 59 | + <el-col :span="24"> | |
| 60 | + <div class="form-item"> | |
| 61 | + <div class="label w-100">问题内容:</div> | |
| 62 | + {{ dataForm.questionContent || "--" }} | |
| 63 | + </div> | |
| 64 | + </el-col> | |
| 65 | + <el-col :span="24"> | |
| 66 | + <div class="form-item"> | |
| 67 | + <div class="label w-100">有害链接:</div> | |
| 68 | + {{ dataForm.link || "--" }} | |
| 69 | + </div> | |
| 70 | + </el-col> | |
| 71 | + <el-col :span="24"> | |
| 72 | + <div class="form-item"> | |
| 73 | + <div class="label w-100">取证内容</div> | |
| 74 | + </div> | |
| 75 | + </el-col> | |
| 76 | + <el-col :span="24"> | |
| 77 | + <div class="form-item"> | |
| 78 | + <div class="label w-100">研判意见:</div> | |
| 79 | + {{ dataForm.judgmentOpinions || "--" }} | |
| 80 | + </div> | |
| 81 | + </el-col> | |
| 82 | + </el-row> | |
| 83 | 83 | </el-col> |
| 84 | 84 | <el-col :span="14"> |
| 85 | 85 | <el-row> | ... | ... |
src/views/DisposalSuggestions/index.vue
| ... | ... | @@ -8,12 +8,12 @@ |
| 8 | 8 | <el-form @submit.native.prevent size="mini"> |
| 9 | 9 | <el-col :span="4"> |
| 10 | 10 | <el-form-item label=""> |
| 11 | - <el-input v-model="query.platformName" placeholder="请输入平台名称" clearable /> | |
| 11 | + <el-input v-model="query.platformName" placeholder="请输入应用名称" clearable /> | |
| 12 | 12 | </el-form-item> |
| 13 | 13 | </el-col> |
| 14 | 14 | <el-col :span="4"> |
| 15 | 15 | <el-form-item label=""> |
| 16 | - <el-select v-model="query.platformType" placeholder="请选择平台类型" clearable > | |
| 16 | + <el-select v-model="query.platformType" placeholder="请选择应用类型" clearable > | |
| 17 | 17 | <el-option v-for="(item, index) in systemTypeOptions" :key="index" :label="item.FullName" :value="item.Id" /> |
| 18 | 18 | </el-select> |
| 19 | 19 | </el-form-item> |
| ... | ... | @@ -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="platformNameStr" label="系统名称" align="left" /> | |
| 41 | - <el-table-column show-overflow-tooltip label="系统类型" prop="platformType" align="left"> | |
| 40 | + <el-table-column show-overflow-tooltip prop="platformNameStr" 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"> | ... | ... |
src/views/Login.vue
| ... | ... | @@ -56,8 +56,8 @@ export default { |
| 56 | 56 | data() { |
| 57 | 57 | return { |
| 58 | 58 | form: { |
| 59 | - account: "wd", // cdoffice | |
| 60 | - password: "123456", // 123456 | |
| 59 | + account: "", // cdoffice, xin | |
| 60 | + password: "", // 123456 | |
| 61 | 61 | }, |
| 62 | 62 | rules: { |
| 63 | 63 | account: { required: true, message: "用户名不能为空", trigger: "blur" }, | ... | ... |
src/views/baseCaseHandling/Form.vue
| ... | ... | @@ -7,8 +7,9 @@ |
| 7 | 7 | lock-scroll |
| 8 | 8 | width="50%" |
| 9 | 9 | v-loading="loading" |
| 10 | + :modal="false" | |
| 10 | 11 | > |
| 11 | - <el-row :gutter="15" class="NCC-dialog-content"> | |
| 12 | + <el-row :gutter="15" class="NCC-dialog-content" v-if="!isDetail"> | |
| 12 | 13 | <el-form |
| 13 | 14 | ref="elForm" |
| 14 | 15 | :model="dataForm" |
| ... | ... | @@ -24,39 +25,51 @@ |
| 24 | 25 | </el-form-item> |
| 25 | 26 | </el-col> |
| 26 | 27 | <el-col :span="24"> |
| 27 | - <el-form-item label="系统名称" prop="systemName"> | |
| 28 | + <el-form-item label="案件名称" prop="systemName"> | |
| 28 | 29 | <el-select |
| 30 | + ref="select" | |
| 29 | 31 | v-model="dataForm.systemName" |
| 30 | 32 | filterable |
| 31 | 33 | remote |
| 32 | 34 | reserve-keyword |
| 33 | - placeholder="请输入关键词" | |
| 34 | - :remote-method="getSystemSelect" | |
| 35 | - @change="systemChange" | |
| 35 | + placeholder="请输入案件名称" | |
| 36 | + @blur.native.capture="selectBlur" | |
| 37 | + @visible-change="visibleNameChange" | |
| 38 | + @change="(val) => platformNameChange(val, 'change')" | |
| 36 | 39 | :disabled="formType" |
| 37 | 40 | :loading="system_loading"> |
| 38 | - <el-option | |
| 39 | - v-for="item in systemOption" | |
| 40 | - :key="item.value" | |
| 41 | - :label="item.systemName" | |
| 42 | - :value="item.id"> | |
| 43 | - </el-option> | |
| 41 | + <el-option v-for="item in systemOption" :key="item.value" :label="item.systemName" :value="item.id" /> | |
| 44 | 42 | </el-select> |
| 45 | 43 | </el-form-item> |
| 46 | 44 | </el-col> |
| 47 | 45 | <el-col :span="24"> |
| 48 | - <el-form-item label="主体企业" prop="registeredEntity"> | |
| 49 | - <el-input v-model="dataForm.registeredEntity" placeholder="选择系统自动带出" clearable disabled/> | |
| 46 | + <el-form-item label="运营主体" prop="registeredEntity"> | |
| 47 | + <el-select | |
| 48 | + v-model="dataForm.registeredEntity" | |
| 49 | + placeholder="请选择运营主体" | |
| 50 | + clearable | |
| 51 | + filterable | |
| 52 | + style="width: 100%" | |
| 53 | + :disabled="formType || dataForm.isHaveSystem" | |
| 54 | + > | |
| 55 | + <el-option | |
| 56 | + v-for="item in companyOptions" | |
| 57 | + :key="item.id" | |
| 58 | + :label="item.companyName" | |
| 59 | + :value="item.id" | |
| 60 | + > | |
| 61 | + </el-option> | |
| 62 | + </el-select> | |
| 50 | 63 | </el-form-item> |
| 51 | 64 | </el-col> |
| 52 | 65 | <el-col :span="24"> |
| 53 | - <el-form-item label="系统类别" prop="category"> | |
| 54 | - <el-input v-model="dataForm.category" placeholder="选择系统自动带出" clearable disabled/> | |
| 66 | + <el-form-item label="应用类别" prop="category"> | |
| 67 | + <el-input v-model="dataForm.category" placeholder="选择系统类别" clearable :disabled="formType || dataForm.isHaveSystem"/> | |
| 55 | 68 | </el-form-item> |
| 56 | 69 | </el-col> |
| 57 | 70 | <el-col :span="24"> |
| 58 | 71 | <el-form-item label="备案号" prop="recordNumber"> |
| 59 | - <el-input v-model="dataForm.recordNumber" placeholder="选择系统自动带出" clearable disabled/> | |
| 72 | + <el-input v-model="dataForm.recordNumber" placeholder="选择备案号" clearable :disabled="formType || dataForm.isHaveSystem"/> | |
| 60 | 73 | </el-form-item> |
| 61 | 74 | </el-col> |
| 62 | 75 | <el-col :span="24"> |
| ... | ... | @@ -103,7 +116,40 @@ |
| 103 | 116 | </el-col> |
| 104 | 117 | </el-form> |
| 105 | 118 | </el-row> |
| 106 | - | |
| 119 | + <el-row v-if="isDetail"> | |
| 120 | + <el-col class="form-item"> | |
| 121 | + <div class="label">案件名称:</div> | |
| 122 | + <div class="text">{{ dataForm.systemNameStr || '--' }}</div> | |
| 123 | + </el-col> | |
| 124 | + <el-col class="form-item"> | |
| 125 | + <div class="label">运营主体:</div> | |
| 126 | + <div class="text">{{ dataForm.registeredEntityStr || '--' }}</div> | |
| 127 | + </el-col> | |
| 128 | + <el-col class="form-item"> | |
| 129 | + <div class="label">应用类别:</div> | |
| 130 | + <div class="text">{{ dataForm.category || '--' }}</div> | |
| 131 | + </el-col> | |
| 132 | + <el-col class="form-item"> | |
| 133 | + <div class="label">备案号:</div> | |
| 134 | + <div class="text">{{ dataForm.recordNumber || '--' }}</div> | |
| 135 | + </el-col> | |
| 136 | + <el-col class="form-item"> | |
| 137 | + <div class="label">所属区县:</div> | |
| 138 | + <div class="text">{{ areaOptions.find(item => item.id == dataForm.districtCounty).fullName }}</div> | |
| 139 | + </el-col> | |
| 140 | + <el-col class="form-item"> | |
| 141 | + <div class="label">违法原因:</div> | |
| 142 | + <p class="text">{{ dataForm.illegalReasons || '--' }}</p> | |
| 143 | + </el-col> | |
| 144 | + <el-col class="form-item"> | |
| 145 | + <div class="label">处罚要求:</div> | |
| 146 | + <p class="text">{{ dataForm.punishmentRequirements || '--' }}</p> | |
| 147 | + </el-col> | |
| 148 | + <el-col class="form-item"> | |
| 149 | + <div class="label">处罚内容:</div> | |
| 150 | + <p class="text">{{ dataForm.punishmentContent || '--' }}</p> | |
| 151 | + </el-col> | |
| 152 | + </el-row> | |
| 107 | 153 | <span slot="footer" class="dialog-footer"> |
| 108 | 154 | <el-button @click="visible = false">取 消</el-button> |
| 109 | 155 | <template v-if="!isDetail && !formType"> |
| ... | ... | @@ -120,6 +166,7 @@ |
| 120 | 166 | import infoMixin from "@/mixins/info"; |
| 121 | 167 | import request from "@/utils/request"; |
| 122 | 168 | import { getSystemDetail } from "@/api/baseData/info"; |
| 169 | +import { getCompanyInfoList, getCompanyInfoById } from "@/api/baseData/company"; | |
| 123 | 170 | import { dynamicTextUP } from "@/filters/index"; |
| 124 | 171 | |
| 125 | 172 | export default { |
| ... | ... | @@ -150,6 +197,7 @@ export default { |
| 150 | 197 | closingReport: undefined, |
| 151 | 198 | enforceType: undefined, |
| 152 | 199 | enforcecontent: undefined, |
| 200 | + isHaveSystem: undefined, | |
| 153 | 201 | }, |
| 154 | 202 | rules: { |
| 155 | 203 | systemName: [ |
| ... | ... | @@ -159,7 +207,7 @@ export default { |
| 159 | 207 | { required: true, message: "请选择所属区域", trigger: "change" } |
| 160 | 208 | ], |
| 161 | 209 | enforceType: [ |
| 162 | - { required: true, message: "请选择执法方式", trigger: "change" } | |
| 210 | + { required: true, message: "请选择执法方式", trigger: "bulr" } | |
| 163 | 211 | ], |
| 164 | 212 | enforcecontent: [ |
| 165 | 213 | { required: true, message: "请填写执法说明", trigger: "bulr" } |
| ... | ... | @@ -169,6 +217,7 @@ export default { |
| 169 | 217 | system_loading: false, |
| 170 | 218 | areaOptions: [], |
| 171 | 219 | btnLoading: false, |
| 220 | + companyOptions: [] | |
| 172 | 221 | }; |
| 173 | 222 | }, |
| 174 | 223 | computed: { |
| ... | ... | @@ -182,24 +231,46 @@ export default { |
| 182 | 231 | this.getSystemSelect(); |
| 183 | 232 | this.initSystemTypeList(); |
| 184 | 233 | this.initAreaTypeList(); |
| 234 | + this.initCompanyList(); | |
| 185 | 235 | }, |
| 186 | 236 | mounted() {}, |
| 187 | 237 | methods: { |
| 238 | + // 请求公司列表 | |
| 239 | + async initCompanyList() { | |
| 240 | + request({ | |
| 241 | + url: `/Extend/basecomapnyinfo/GetNoPagingList`, | |
| 242 | + method: "GET", | |
| 243 | + }).then(({data}) => { | |
| 244 | + this.companyOptions = data; | |
| 245 | + }) | |
| 246 | + }, | |
| 188 | 247 | // 获取系统列表 |
| 189 | - getSystemSelect(val) { | |
| 190 | - let query = { | |
| 191 | - SystemName: val || "", | |
| 192 | - }; | |
| 248 | + getSystemSelect() { | |
| 193 | 249 | this.system_loading = true; |
| 194 | 250 | request({ |
| 195 | 251 | url: "/Extend/basesysteminfo/GetNoPagingList", |
| 196 | 252 | method: "get", |
| 197 | - params: query, | |
| 198 | 253 | }).then(({data}) => { |
| 199 | 254 | this.systemOption = data; |
| 200 | 255 | this.system_loading = false; |
| 201 | 256 | }) |
| 202 | 257 | }, |
| 258 | + selectBlur(e) { | |
| 259 | + if(!this.isSHILevel) return; | |
| 260 | + let value = e.target.value; | |
| 261 | + if(!value) return; | |
| 262 | + this.dataForm.systemName = e.target.value; | |
| 263 | + this.platformNameChange(value, 'blur'); | |
| 264 | + }, | |
| 265 | + platformNameChange(val, type) { | |
| 266 | + let obj = this.systemOption.find(v => type == 'blur' ? val == v.fullName : val == v.id); | |
| 267 | + this.dataForm.isHaveSystem = obj ? true : false; | |
| 268 | + if(!obj) return; | |
| 269 | + this.dataForm.systemName = obj ? obj.id : val; | |
| 270 | + this.dataForm.registeredEntity = obj ? obj.companyId : val; | |
| 271 | + this.dataForm.category = obj ? obj.systemType : ''; | |
| 272 | + this.dataForm.recordNumber = obj ? obj.platform : ''; | |
| 273 | + }, | |
| 203 | 274 | // 系统名称改变 |
| 204 | 275 | systemChange(val) { |
| 205 | 276 | getSystemDetail(val).then(({data}) => { |
| ... | ... | @@ -209,6 +280,11 @@ export default { |
| 209 | 280 | this.dataForm.districtCounty = data.areaId; |
| 210 | 281 | }) |
| 211 | 282 | }, |
| 283 | + visibleNameChange(val) { | |
| 284 | + if (val) return | |
| 285 | + let input = this.$refs.select.$children[0].$refs.input; | |
| 286 | + input.blur(); | |
| 287 | + }, | |
| 212 | 288 | goBack() { |
| 213 | 289 | this.$emit("refresh"); |
| 214 | 290 | }, |
| ... | ... | @@ -218,19 +294,17 @@ export default { |
| 218 | 294 | this.dataForm.id = id || 0; |
| 219 | 295 | this.isDetail = isDetail || false; |
| 220 | 296 | this.visible = true; |
| 297 | + this.$forceUpdate(); | |
| 221 | 298 | this.$nextTick(() => { |
| 222 | - this.$refs["elForm"].resetFields(); | |
| 299 | + !isDetail && this.$refs["elForm"].resetFields(); | |
| 223 | 300 | if (this.dataForm.id) { |
| 224 | 301 | this.loading = true; |
| 225 | 302 | request({ |
| 226 | 303 | url: `/Extend/BaseCaseHandling/${this.dataForm.id}`, |
| 227 | 304 | method: "GET", |
| 228 | - }).then((res) => { | |
| 305 | + }).then(async (res) => { | |
| 229 | 306 | this.dataForm = res.data; |
| 230 | 307 | this.loading = false; |
| 231 | - this.$nextTick(() => { | |
| 232 | - this.$refs["elForm"].clearValidate(); | |
| 233 | - }) | |
| 234 | 308 | }).catch(() => { |
| 235 | 309 | this.loading = false; |
| 236 | 310 | }); | ... | ... |
src/views/baseComapnyInfo/Form.vue
| ... | ... | @@ -12,33 +12,33 @@ |
| 12 | 12 | </el-col> |
| 13 | 13 | <el-col :span="24"> |
| 14 | 14 | <el-form-item label="运营主体名称" prop="companyName"> |
| 15 | - <el-input v-model="dataForm.companyName" placeholder="请输入" clearable required | |
| 15 | + <el-input v-model="dataForm.companyName" placeholder="请输入运营主体名称" clearable required | |
| 16 | 16 | :style='{ "width": "100%" }'> |
| 17 | 17 | </el-input> |
| 18 | 18 | </el-form-item> |
| 19 | 19 | </el-col> |
| 20 | 20 | <el-col :span="24"> |
| 21 | 21 | <el-form-item label="社会信用代" prop="socialCreditAgency"> |
| 22 | - <el-input v-model="dataForm.socialCreditAgency" placeholder="请输入" clearable | |
| 22 | + <el-input v-model="dataForm.socialCreditAgency" placeholder="请输入社会信用代" clearable | |
| 23 | 23 | :style='{ "width": "100%" }'> |
| 24 | 24 | </el-input> |
| 25 | 25 | </el-form-item> |
| 26 | 26 | </el-col> |
| 27 | 27 | <el-col :span="24"> |
| 28 | 28 | <el-form-item label="运营主体法人" prop="legalPerson"> |
| 29 | - <el-input v-model="dataForm.legalPerson" placeholder="请输入" clearable :style='{ "width": "100%" }'> | |
| 29 | + <el-input v-model="dataForm.legalPerson" placeholder="请输入运营主体法人" clearable :style='{ "width": "100%" }'> | |
| 30 | 30 | </el-input> |
| 31 | 31 | </el-form-item> |
| 32 | 32 | </el-col> |
| 33 | 33 | <el-col :span="24"> |
| 34 | 34 | <el-form-item label="运营主体地址" prop="address"> |
| 35 | - <el-input v-model="dataForm.address" placeholder="请输入" clearable :style='{ "width": "100%" }'> | |
| 35 | + <el-input v-model="dataForm.address" placeholder="请输入运营主体地址" clearable :style='{ "width": "100%" }'> | |
| 36 | 36 | </el-input> |
| 37 | 37 | </el-form-item> |
| 38 | 38 | </el-col> |
| 39 | 39 | <el-col :span="24"> |
| 40 | 40 | <el-form-item label="联系方式" prop="contactInformation"> |
| 41 | - <el-input v-model="dataForm.contactInformation" placeholder="请输入" clearable | |
| 41 | + <el-input v-model="dataForm.contactInformation" placeholder="请输入联系方式" clearable | |
| 42 | 42 | :style='{ "width": "100%" }'> |
| 43 | 43 | </el-input> |
| 44 | 44 | </el-form-item> |
| ... | ... | @@ -60,7 +60,7 @@ |
| 60 | 60 | </el-row> |
| 61 | 61 | <span slot="footer" class="dialog-footer"> |
| 62 | 62 | <el-button @click="visible = false">取 消</el-button> |
| 63 | - <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail">确 定</el-button> | |
| 63 | + <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail" :loading="btnLoading">确 定</el-button> | |
| 64 | 64 | </span> |
| 65 | 65 | </el-dialog> |
| 66 | 66 | </template> |
| ... | ... | @@ -108,6 +108,7 @@ export default { |
| 108 | 108 | }, |
| 109 | 109 | ], |
| 110 | 110 | }, |
| 111 | + btnLoading: false, | |
| 111 | 112 | } |
| 112 | 113 | }, |
| 113 | 114 | computed: {}, |
| ... | ... | @@ -143,6 +144,7 @@ export default { |
| 143 | 144 | dataFormSubmit() { |
| 144 | 145 | this.$refs['elForm'].validate((valid) => { |
| 145 | 146 | if (valid) { |
| 147 | + this.btnLoading = true; | |
| 146 | 148 | if (!this.dataForm.id) { |
| 147 | 149 | request({ |
| 148 | 150 | url: `/Extend/BaseComapnyInfo`, |
| ... | ... | @@ -155,10 +157,11 @@ export default { |
| 155 | 157 | duration: 1000, |
| 156 | 158 | onClose: () => { |
| 157 | 159 | this.visible = false, |
| 158 | - this.$emit('refresh', true) | |
| 159 | - } | |
| 160 | - }) | |
| 161 | - }) | |
| 160 | + this.$emit('refresh', true); | |
| 161 | + } | |
| 162 | + }); | |
| 163 | + this.btnLoading = false; | |
| 164 | + }).catch(() => this.btnLoading = false); | |
| 162 | 165 | } else { |
| 163 | 166 | request({ |
| 164 | 167 | url: '/Extend/BaseComapnyInfo/' + this.dataForm.id, |
| ... | ... | @@ -171,10 +174,11 @@ export default { |
| 171 | 174 | duration: 1000, |
| 172 | 175 | onClose: () => { |
| 173 | 176 | this.visible = false |
| 174 | - this.$emit('refresh', true) | |
| 177 | + this.$emit('refresh', true); | |
| 175 | 178 | } |
| 176 | - }) | |
| 177 | - }) | |
| 179 | + }); | |
| 180 | + this.btnLoading = false; | |
| 181 | + }).catch(() => this.btnLoading = false); | |
| 178 | 182 | } |
| 179 | 183 | } |
| 180 | 184 | }) | ... | ... |
src/views/baseComapnyInfo/index.vue
| ... | ... | @@ -57,7 +57,7 @@ |
| 57 | 57 | <el-table-column label="操作" fixed="right" width="100"> |
| 58 | 58 | <template slot-scope="scope"> |
| 59 | 59 | <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">编辑</el-button> |
| 60 | - <el-button type="text" @click="handleDel(scope.row.id)" class="NCC-table-delBtn" >删除</el-button> | |
| 60 | + <!-- <el-button type="text" @click="handleDel(scope.row.id)" class="NCC-table-delBtn" >删除</el-button> --> | |
| 61 | 61 | </template> |
| 62 | 62 | </el-table-column> |
| 63 | 63 | </NCC-table> | ... | ... |
src/views/baseInspectionReport/Form.vue
| ... | ... | @@ -6,8 +6,9 @@ |
| 6 | 6 | class="NCC-dialog NCC-dialog_center baseInspectionReportForm" |
| 7 | 7 | lock-scroll |
| 8 | 8 | width="50%" |
| 9 | + :modal="false" | |
| 9 | 10 | > |
| 10 | - <el-row :gutter="15" class="NCC-dialog-content"> | |
| 11 | + <el-row :gutter="15" class="NCC-dialog-content" v-if="!isDetail"> | |
| 11 | 12 | <el-form |
| 12 | 13 | ref="elForm" |
| 13 | 14 | :model="dataForm" |
| ... | ... | @@ -30,14 +31,14 @@ |
| 30 | 31 | </el-form-item> |
| 31 | 32 | </el-col> |
| 32 | 33 | <el-col :span="23"> |
| 33 | - <el-form-item label="系统名称" prop="platformName"> | |
| 34 | + <el-form-item label="应用名称" prop="platformName"> | |
| 34 | 35 | <el-select |
| 35 | 36 | ref="select" |
| 36 | 37 | v-model="dataForm.platformName" |
| 37 | 38 | filterable |
| 38 | 39 | remote |
| 39 | 40 | reserve-keyword |
| 40 | - placeholder="请输入系统名称" | |
| 41 | + placeholder="请输入应用名称" | |
| 41 | 42 | @blur.native.capture="selectBlur" |
| 42 | 43 | @visible-change="visibleNameChange" |
| 43 | 44 | @change="(val) => platformNameChange(val, 'change')" |
| ... | ... | @@ -48,7 +49,7 @@ |
| 48 | 49 | </el-form-item> |
| 49 | 50 | </el-col> |
| 50 | 51 | <el-col :span="23"> |
| 51 | - <el-form-item label="系统类型" prop="platformType"> | |
| 52 | + <el-form-item label="应用类型" prop="platformType"> | |
| 52 | 53 | <el-radio-group v-model="dataForm.platformType" :disabled='isDisabledTypeByName || !!this.dataForm.id'> |
| 53 | 54 | <el-radio v-for="(item, index) in platformTypeOptions" :key="index" :label="item.Id">{{ item.FullName }}</el-radio> |
| 54 | 55 | </el-radio-group> |
| ... | ... | @@ -86,11 +87,11 @@ |
| 86 | 87 | <el-input v-model="dataForm.questionContent" placeholder="请输入" show-word-limit :style="{ width: '100%' }" type="textarea" :autosize="{ minRows: 4, maxRows: 4 }" /> |
| 87 | 88 | </el-form-item> |
| 88 | 89 | </el-col> |
| 89 | - <el-col :span="23"> | |
| 90 | + <!-- <el-col :span="23"> | |
| 90 | 91 | <el-form-item label="链接" prop="link"> |
| 91 | 92 | <el-input v-model="dataForm.link" placeholder="请输入链接" clearable :style="{ width: '100%' }"></el-input> |
| 92 | 93 | </el-form-item> |
| 93 | - </el-col> | |
| 94 | + </el-col> --> | |
| 94 | 95 | <el-col :span="23"> |
| 95 | 96 | <el-form-item label="关键词" prop="questionClass"> |
| 96 | 97 | <el-input v-model="dataForm.questionClass" placeholder="请输入关键词" clearable :style="{ width: '100%' }"></el-input> |
| ... | ... | @@ -103,6 +104,48 @@ |
| 103 | 104 | </el-col> |
| 104 | 105 | </el-form> |
| 105 | 106 | </el-row> |
| 107 | + <el-row v-else> | |
| 108 | + <el-col class="form-item"> | |
| 109 | + <div class="label">问题来源:</div> | |
| 110 | + <div class="text">{{ dataForm.source || '--' }}</div> | |
| 111 | + </el-col> | |
| 112 | + <el-col class="form-item"> | |
| 113 | + <div class="label">应用名称:</div> | |
| 114 | + <div class="text">{{ dataForm.platformName || '--' }}</div> | |
| 115 | + </el-col> | |
| 116 | + <el-col class="form-item"> | |
| 117 | + <div class="label">应用类型:</div> | |
| 118 | + <div class="text">{{ dataForm.platformType || '--' }}</div> | |
| 119 | + </el-col> | |
| 120 | + <el-col class="form-item"> | |
| 121 | + <div class="label">归属平台:</div> | |
| 122 | + <div class="text">{{ dataForm.selfMediaPlatformType || '--' }}</div> | |
| 123 | + </el-col> | |
| 124 | + <el-col class="form-item"> | |
| 125 | + <div class="label">问题类型:</div> | |
| 126 | + <div class="text">{{ dataForm.questionType || '--' }}</div> | |
| 127 | + </el-col> | |
| 128 | + <el-col class="form-item" v-show="dataForm.questionType == '错误表述'"> | |
| 129 | + <div class="label">正确描述:</div> | |
| 130 | + <div class="text">{{ dataForm.accurateDescription || '--' }}</div> | |
| 131 | + </el-col> | |
| 132 | + <el-col class="form-item" v-show="dataForm.questionType == '错误表述'"> | |
| 133 | + <div class="label">错误描述:</div> | |
| 134 | + <div class="text">{{ dataForm.incorrectDescription || '--' }}</div> | |
| 135 | + </el-col> | |
| 136 | + <el-col class="form-item"> | |
| 137 | + <div class="label">问题内容:</div> | |
| 138 | + <div class="text">{{ dataForm.questionContent || '--' }}</div> | |
| 139 | + </el-col> | |
| 140 | + <el-col class="form-item"> | |
| 141 | + <div class="label">关键词:</div> | |
| 142 | + <div class="text">{{ dataForm.questionClass || '--' }}</div> | |
| 143 | + </el-col> | |
| 144 | + <el-col class="form-item"> | |
| 145 | + <div class="label">附件:</div> | |
| 146 | + <!-- <div class="text">{{ dataForm.questionContent || '--' }}</div> --> | |
| 147 | + </el-col> | |
| 148 | + </el-row> | |
| 106 | 149 | <span slot="footer" class="dialog-footer"> |
| 107 | 150 | <el-button @click="visible = false">取 消</el-button> |
| 108 | 151 | <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail">确 定</el-button> |
| ... | ... | @@ -183,8 +226,9 @@ export default { |
| 183 | 226 | }, |
| 184 | 227 | platformNameChange(val, type) { |
| 185 | 228 | let obj = this.nameOptions.find(v => type == 'blur' ? val == v.fullName : val == v.id); |
| 229 | + if(!obj) return; | |
| 186 | 230 | this.dataForm.platformName = obj ? obj.id : val; |
| 187 | - this.dataForm.platformType = obj ? obj.systemType : ''; | |
| 231 | + this.dataForm.platformType = this.platformTypeOptions.find(v => v.Id == obj.systemType || v.FullName == obj.systemType).Id; | |
| 188 | 232 | this.dataForm.selfMediaPlatformType = obj ? obj.platform : ''; |
| 189 | 233 | }, |
| 190 | 234 | visibleNameChange(val) { |
| ... | ... | @@ -228,9 +272,10 @@ export default { |
| 228 | 272 | this.visible = true; |
| 229 | 273 | this.isDetail = isDetail || false; |
| 230 | 274 | this.$nextTick(async () => { |
| 231 | - this.$refs["elForm"].resetFields(); | |
| 275 | + !isDetail && this.$refs["elForm"].resetFields(); | |
| 232 | 276 | if (this.dataForm.id) { |
| 233 | 277 | let res = await getDetail(this.dataForm.id); |
| 278 | + if(!res.data) return; | |
| 234 | 279 | this.dataForm = res.data; |
| 235 | 280 | if(this.questionTypeOptions.findIndex(v => v.fullName == this.dataForm.questionType) == -1) { |
| 236 | 281 | this.dataForm.otherQuestionType = res.data.questionType; | ... | ... |
src/views/baseInspectionReport/index.vue
| ... | ... | @@ -30,7 +30,22 @@ |
| 30 | 30 | </el-col> |
| 31 | 31 | <div class="NCC-common-search-box-right"> |
| 32 | 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> --> | |
| 33 | + <el-button type="primary" icon="el-icon-download" size="mini" @click="exportData('demo')">导出模板</el-button> | |
| 34 | + <el-upload | |
| 35 | + class="uploadXlax" | |
| 36 | + :action="define.APIURl + '/api/Extend/BaseInspectionReport/Actions/ImportByExcel'" | |
| 37 | + :headers="uploadHeaders" | |
| 38 | + :on-success="uploadSuccess" | |
| 39 | + :on-error="uploadError" | |
| 40 | + :show-file-list="false" | |
| 41 | + name="excelfile" | |
| 42 | + accept="image/*" | |
| 43 | + > | |
| 44 | + <div class="avatar-box"> | |
| 45 | + <el-button type="info" icon="el-icon-upload" size="mini">导入</el-button> | |
| 46 | + </div> | |
| 47 | + </el-upload> | |
| 48 | + <el-button type="primary" icon="el-icon-download" size="mini" @click="exportData()">导出</el-button> | |
| 34 | 49 | </div> |
| 35 | 50 | </el-form> |
| 36 | 51 | </el-row> |
| ... | ... | @@ -73,6 +88,7 @@ |
| 73 | 88 | import infoMixin from "@/mixins/info"; |
| 74 | 89 | import ExportBox from './ExportBox' |
| 75 | 90 | import { getList, previewDataInterface } from '@/api/systemData/dataInterface' |
| 91 | +import { message } from '@/utils/message'; | |
| 76 | 92 | export default { |
| 77 | 93 | mixins: [infoMixin], |
| 78 | 94 | components: { NCCForm, ExportBox }, |
| ... | ... | @@ -113,6 +129,7 @@ |
| 113 | 129 | questionTypeOptions : [], |
| 114 | 130 | questionClassOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}], |
| 115 | 131 | stageOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}], |
| 132 | + uploadHeaders: { Authorization: this.$store.getters.token }, | |
| 116 | 133 | } |
| 117 | 134 | }, |
| 118 | 135 | computed: { |
| ... | ... | @@ -173,6 +190,53 @@ |
| 173 | 190 | this.$refs.NCCForm.init(id, isDetail) |
| 174 | 191 | }) |
| 175 | 192 | }, |
| 193 | + uploadSuccess(response, file, fileList) { | |
| 194 | + this.$message({ | |
| 195 | + showClose: true, | |
| 196 | + message: response.msg, | |
| 197 | + type: response.code == 200 ? 'success' : 'error', | |
| 198 | + }); | |
| 199 | + }, | |
| 200 | + uploadError() { | |
| 201 | + console.log('erroe'); | |
| 202 | + }, | |
| 203 | + exportData(type) { | |
| 204 | + let obj = {} | |
| 205 | + if(type) { | |
| 206 | + obj = { | |
| 207 | + url: '/Extend/BaseInspectionReport/Actions/GenerateImportTemplate', | |
| 208 | + method: "GET", | |
| 209 | + } | |
| 210 | + } else { | |
| 211 | + this.listLoading = true; | |
| 212 | + let _query = { | |
| 213 | + ...this.listQuery, | |
| 214 | + ...this.query | |
| 215 | + }; | |
| 216 | + let query = {} | |
| 217 | + for (let key in _query) { | |
| 218 | + if (Array.isArray(_query[key])) { | |
| 219 | + query[key] = _query[key].join() | |
| 220 | + } else { | |
| 221 | + query[key] = _query[key] | |
| 222 | + } | |
| 223 | + } | |
| 224 | + obj = { | |
| 225 | + url: '/Extend/BaseInspectionReport/Actions/Export', | |
| 226 | + method: "POST", | |
| 227 | + data: query, | |
| 228 | + } | |
| 229 | + } | |
| 230 | + request(obj).then((res) => { | |
| 231 | + console.log(res); | |
| 232 | + const url = define.APIURl + res.data.url; | |
| 233 | + const link = document.createElement("a"); | |
| 234 | + link.href = url; | |
| 235 | + link.download = res.data.name; | |
| 236 | + link.click(); | |
| 237 | + }); | |
| 238 | + this.listLoading = false; | |
| 239 | + }, | |
| 176 | 240 | search() { |
| 177 | 241 | this.listQuery = { |
| 178 | 242 | currentPage: 1, |
| ... | ... | @@ -208,4 +272,8 @@ |
| 208 | 272 | overflow-y: scroll; |
| 209 | 273 | } |
| 210 | 274 | } |
| 275 | +.uploadXlax { | |
| 276 | + display: inline-block; | |
| 277 | + margin: 0 8px; | |
| 278 | +} | |
| 211 | 279 | </style> |
| 212 | 280 | \ No newline at end of file | ... | ... |
src/views/baseListHazardousSamples/index.vue
| 1 | 1 | <template> |
| 2 | 2 | <div class="item-box common-info-box"> |
| 3 | - <div class="item-title">有害清单</div> | |
| 3 | + <div class="item-title">问题督导整改清单</div> | |
| 4 | 4 | <div class="item-body"> |
| 5 | 5 | <div class="NCC-common-layout"> |
| 6 | 6 | <div class="NCC-common-layout-center"> |
| ... | ... | @@ -83,7 +83,7 @@ |
| 83 | 83 | <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> --> |
| 84 | 84 | <el-table-column prop="inputTime" label="录入时间" align="left" :formatter="ncc.tableDateFormat" show-overflow-tooltip/> |
| 85 | 85 | <el-table-column label="运营主体" prop="companyStr" align="left" show-overflow-tooltip /> |
| 86 | - <el-table-column label="网站平台" prop="websitePlatformStr" align="left" show-overflow-tooltip /> | |
| 86 | + <el-table-column label="应用名称" prop="websitePlatformStr" align="left" show-overflow-tooltip /> | |
| 87 | 87 | <el-table-column label="来源" prop="source" align="left" show-overflow-tooltip /> |
| 88 | 88 | <el-table-column label="问题类型" prop="questionType" align="left" show-overflow-tooltip /> |
| 89 | 89 | <el-table-column label="问题内容" prop="questionContent" align="left" show-overflow-tooltip /> |
| ... | ... | @@ -93,26 +93,20 @@ |
| 93 | 93 | <!-- <el-table-column prop="creatorTime" label="创建时间" align="left" show-overflow-tooltip :formatter="ncc.tableDateFormat"/> --> |
| 94 | 94 | <!-- <el-table-column prop="lastModifyUserId" label="修改用户" align="left" show-overflow-tooltip/> --> |
| 95 | 95 | <!-- <el-table-column prop="lastModifyTime" label="修改时间" :formatter="ncc.tableDateFormat" show-overflow-tooltip align="left"/> --> |
| 96 | - <!-- <el-table-column label="操作" fixed="right" width="100"> | |
| 96 | + <el-table-column label="操作" fixed="right" width="100"> | |
| 97 | 97 | <template slot-scope="scope"> |
| 98 | - <el-button type="text" @click="addOrUpdateHandle(scope.row, ture)">详情</el-button> | |
| 98 | + <el-button type="text" @click="addOrUpdateHandle(scope.row, true)">详情</el-button> | |
| 99 | 99 | </template> |
| 100 | - </el-table-column> --> | |
| 100 | + </el-table-column> | |
| 101 | 101 | </NCC-table> |
| 102 | - <pagination | |
| 103 | - :total="total" | |
| 104 | - :page.sync="listQuery.currentPage" | |
| 105 | - :limit.sync="listQuery.pageSize" | |
| 106 | - @pagination="initData" | |
| 107 | - /> | |
| 102 | + <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/> | |
| 108 | 103 | </div> |
| 109 | 104 | </div> |
| 110 | 105 | <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" /> |
| 111 | - <ExportBox | |
| 112 | - v-if="exportBoxVisible" | |
| 113 | - ref="ExportBox" | |
| 114 | - @download="download" | |
| 115 | - /> | |
| 106 | + <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/> | |
| 107 | + <!-- 案件处理 --> | |
| 108 | + <HandForm v-if="HandFormVisible" ref="HandForm" @refresh="(val) => {taskRefresh('HandFormVisible', val)}" /> | |
| 109 | + <ReportForm v-if="ReportFormVisible" ref="ReportForm" @refresh="(val) => {taskRefresh('ReportFormVisible', val)}" /> | |
| 116 | 110 | </div> |
| 117 | 111 | </div> |
| 118 | 112 | </div> |
| ... | ... | @@ -123,8 +117,10 @@ import { getDictionaryDataSelector } from "@/api/systemData/dictionary"; |
| 123 | 117 | import NCCForm from "./Form"; |
| 124 | 118 | import ExportBox from "./ExportBox"; |
| 125 | 119 | import { previewDataInterface } from "@/api/systemData/dataInterface"; |
| 120 | +import HandForm from '@/views/baseCaseHandling/Form.vue' // 案件处理 | |
| 121 | +import ReportForm from '@/views/baseInspectionReport/Form.vue' // 案件处理 | |
| 126 | 122 | export default { |
| 127 | - components: { NCCForm, ExportBox }, | |
| 123 | + components: { NCCForm, ExportBox, HandForm, ReportForm }, | |
| 128 | 124 | data() { |
| 129 | 125 | return { |
| 130 | 126 | showAll: false, |
| ... | ... | @@ -171,6 +167,8 @@ export default { |
| 171 | 167 | |
| 172 | 168 | // 导出 |
| 173 | 169 | exportBtnLoading: false, |
| 170 | + HandFormVisible: false, | |
| 171 | + ReportFormVisible: false, | |
| 174 | 172 | }; |
| 175 | 173 | }, |
| 176 | 174 | computed: {}, |
| ... | ... | @@ -268,22 +266,25 @@ export default { |
| 268 | 266 | .catch(() => {}); |
| 269 | 267 | }, |
| 270 | 268 | addOrUpdateHandle(row, isDetail) { |
| 271 | - row.harmfulInformationTypes == '' | |
| 272 | - switch (row.harmfulInformationTypes) { | |
| 273 | - case '巡查上报 ': | |
| 274 | - | |
| 269 | + console.log(row); | |
| 270 | + | |
| 271 | + switch (row.source) { | |
| 272 | + case "核查处置": | |
| 273 | + this.ReportFormVisible = true; | |
| 274 | + this.$nextTick(() => { | |
| 275 | + this.$refs.ReportForm.init(row.inspectionReportId, true); | |
| 276 | + }); | |
| 275 | 277 | break; |
| 276 | - case '网信执法 ': | |
| 277 | - | |
| 278 | + case "网信执法": | |
| 279 | + this.HandFormVisible = true; | |
| 280 | + this.$nextTick(() => { | |
| 281 | + this.$refs.HandForm.init(row.caseHandlingId, true); | |
| 282 | + }); | |
| 278 | 283 | break; |
| 279 | 284 | |
| 280 | 285 | default: |
| 281 | 286 | break; |
| 282 | 287 | } |
| 283 | - this.formVisible = true; | |
| 284 | - this.$nextTick(() => { | |
| 285 | - this.$refs.NCCForm.init(row.id, isDetail); | |
| 286 | - }); | |
| 287 | 288 | }, |
| 288 | 289 | search() { |
| 289 | 290 | this.listQuery = { |
| ... | ... | @@ -294,8 +295,8 @@ export default { |
| 294 | 295 | }; |
| 295 | 296 | this.initData(); |
| 296 | 297 | }, |
| 297 | - refresh(isrRefresh) { | |
| 298 | - this.formVisible = false; | |
| 298 | + taskRefresh(key ,isrRefresh) { | |
| 299 | + this[`${key}`] = false; | |
| 299 | 300 | if (isrRefresh) this.reset(); |
| 300 | 301 | }, |
| 301 | 302 | reset() { | ... | ... |
src/views/baseSpecialAction/Form.vue
| ... | ... | @@ -5,7 +5,7 @@ |
| 5 | 5 | :visible.sync="visible" |
| 6 | 6 | class="NCC-dialog NCC-dialog_center" |
| 7 | 7 | lock-scroll |
| 8 | - width="50%" | |
| 8 | + width="60%" | |
| 9 | 9 | v-loading="loading" |
| 10 | 10 | > |
| 11 | 11 | <el-row :gutter="15" class="NCC-dialog-content"> |
| ... | ... | @@ -43,9 +43,8 @@ |
| 43 | 43 | </el-col> |
| 44 | 44 | <el-col :span="23" v-if="ncc.hasFormP('content')"> |
| 45 | 45 | <el-form-item label="内容" prop="content"> |
| 46 | - <el-input v-model="dataForm.content" placeholder="请输入" show-word-limit :style="{ width: '100%' }" | |
| 47 | - type="textarea" :autosize="{ minRows: 4, maxRows: 4 }"> | |
| 48 | - </el-input> | |
| 46 | + <NCC-Quill v-model="dataForm.content" placeholder="请输入内容..."> | |
| 47 | + </NCC-Quill> | |
| 49 | 48 | </el-form-item> |
| 50 | 49 | </el-col> |
| 51 | 50 | <el-col :span="23" v-if="ncc.hasFormP('annex')"> |
| ... | ... | @@ -104,15 +103,16 @@ |
| 104 | 103 | </el-form-item> |
| 105 | 104 | </el-col> |
| 106 | 105 | <el-col :span="23" v-if="ncc.hasFormP('deadline')"> |
| 107 | - <el-form-item label="截止日期" prop="deadline"> | |
| 106 | + <el-form-item label="截止时间" prop="deadline"> | |
| 108 | 107 | <el-date-picker |
| 109 | 108 | v-model="dataForm.deadline" |
| 110 | - type="date" | |
| 109 | + type="datetime" | |
| 111 | 110 | :disabled="editType == '已发布并部署'" |
| 112 | - placeholder="选择截止日期"> | |
| 111 | + placeholder="选择截止时间"> | |
| 113 | 112 | </el-date-picker> |
| 114 | 113 | </el-form-item> |
| 115 | 114 | </el-col> |
| 115 | + | |
| 116 | 116 | </el-form> |
| 117 | 117 | </el-row> |
| 118 | 118 | <span slot="footer" class="dialog-footer"> |
| ... | ... | @@ -288,6 +288,9 @@ export default { |
| 288 | 288 | }); |
| 289 | 289 | }, |
| 290 | 290 | dataFormSubmit(type) { |
| 291 | + console.log(this.dataForm); | |
| 292 | + return | |
| 293 | + | |
| 291 | 294 | this.validateForm(type, () => { |
| 292 | 295 | let obj = { |
| 293 | 296 | ...this.dataForm, | ... | ... |
src/views/baseSpecialAction/FormPage.vue
| 1 | 1 | <template> |
| 2 | - <div class="item-box common-info-box"> | |
| 3 | - <div class="item-title">安排部署</div> | |
| 4 | - <div class="item-body"> | |
| 5 | - <div style=" | |
| 6 | - background-color: #fff; | |
| 7 | - width: 100%; | |
| 8 | - height: 100%; | |
| 9 | - padding: 15px; | |
| 10 | - "> | |
| 11 | - <el-row :gutter="15" class=""> | |
| 12 | - <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" | |
| 13 | - :disabled="!!isDetail" :rules="rules"> | |
| 14 | - <el-col :span="24" v-if="false"> | |
| 15 | - <el-form-item label="主键" prop="id"> | |
| 16 | - <el-input v-model="dataForm.id" placeholder="请输入" clearable :style="{ width: '100%' }"> | |
| 17 | - </el-input> | |
| 18 | - </el-form-item> | |
| 19 | - </el-col> | |
| 20 | - <el-col :span="24" v-if="ncc.hasFormP('specialActionType')"> | |
| 21 | - <el-form-item label="类型" prop="specialActionType"> | |
| 22 | - <el-select v-model="dataForm.specialActionType" placeholder="请选择" clearable required | |
| 23 | - :style="{ width: '100%' }"> | |
| 24 | - <el-option v-for="(item, index) in specialActionTypeOptions" :key="index" :label="item.fullName" | |
| 25 | - :value="item.id"></el-option> | |
| 26 | - </el-select> | |
| 27 | - </el-form-item> | |
| 28 | - </el-col> | |
| 29 | - <el-col :span="24" v-if="ncc.hasFormP('title')"> | |
| 30 | - <el-form-item label="标题" prop="title"> | |
| 31 | - <el-input v-model="dataForm.title" placeholder="请输入" clearable required :style="{ width: '100%' }"> | |
| 32 | - </el-input> | |
| 33 | - </el-form-item> | |
| 34 | - </el-col> | |
| 35 | - <el-col :span="24" v-if="ncc.hasFormP('content')"> | |
| 36 | - <el-form-item label="内容" prop="content"> | |
| 37 | - <el-input v-model="dataForm.content" placeholder="请输入" show-word-limit :style="{ width: '100%' }" | |
| 38 | - type="textarea" :autosize="{ minRows: 4, maxRows: 4 }"> | |
| 39 | - </el-input> | |
| 40 | - </el-form-item> | |
| 41 | - </el-col> | |
| 42 | - <el-col :span="12"> | |
| 43 | - <el-form-item label="发布时间" prop="releaseTime"> | |
| 44 | - <el-date-picker v-model="dataForm.releaseTime" placeholder="请选择" clearable :style="{ width: '100%' }" | |
| 45 | - type="datetime"> | |
| 46 | - </el-date-picker> | |
| 47 | - </el-form-item> | |
| 48 | - </el-col> | |
| 49 | - <el-col :span="12"> | |
| 50 | - <el-form-item label="发布周期" prop="releaseCount"> | |
| 51 | - <el-select v-model="dataForm.releaseCycle" placeholder="请选择"> | |
| 52 | - <el-option v-for="item in CycleOptions" :key="item.value" :label="item.label" :value="item.value"> | |
| 53 | - </el-option> | |
| 54 | - </el-select> | |
| 55 | - </el-form-item> | |
| 56 | - </el-col> | |
| 57 | - <el-col :span="12"> | |
| 58 | - <el-form-item label="自动发布" prop="isOpenRelease"> | |
| 59 | - <el-radio-group v-model="dataForm.isOpenRelease"> | |
| 60 | - <el-radio :label="true">是</el-radio> | |
| 61 | - <el-radio :label="false">否</el-radio> | |
| 62 | - </el-radio-group> | |
| 63 | - </el-form-item> | |
| 64 | - </el-col> | |
| 65 | - <el-col :span="12"> | |
| 66 | - <el-form-item label="发布次数" prop="releaseCount"> | |
| 67 | - <el-input-number v-model="dataForm.releaseCount" :min="1" :max="100"></el-input-number> | |
| 68 | - </el-form-item> | |
| 69 | - </el-col> | |
| 70 | - <el-col :span="24" v-if="ncc.hasFormP('annex')"> | |
| 71 | - <el-form-item label="附件" prop="annex"> | |
| 72 | - <NCC-UploadFz v-model="dataForm.annex" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传"> | |
| 73 | - </NCC-UploadFz> | |
| 74 | - </el-form-item> | |
| 75 | - </el-col> | |
| 76 | - <el-col :span="24" v-if="ncc.hasFormP('communicationArea')"> | |
| 77 | - <el-form-item label="传达区域" prop="communicationArea"> | |
| 78 | - <el-checkbox-group v-model="dataForm.communicationArea" :style="{}"> | |
| 79 | - <el-checkbox v-for="(item, index) in communicationAreaOptions" :key="index" :label="item.id">{{ | |
| 80 | - item.fullName }}</el-checkbox> | |
| 81 | - </el-checkbox-group> | |
| 82 | - <div style="margin-top: 10px;"> | |
| 83 | - <el-button size="mini" @click="selectAll">全选</el-button> | |
| 84 | - <el-button size="mini" @click="invertSelection">反选</el-button> | |
| 85 | - </div> | |
| 86 | - </el-form-item> | |
| 87 | - </el-col> | |
| 88 | - <el-col :span="24" v-if="ncc.hasFormP('communicationArea')"> | |
| 89 | - <el-form-item label="填报表单" prop="communicationArea"> | |
| 90 | - <el-select v-model="dataForm.relationId" placeholder="请选择专项行动填报表单" style="margin-right: 10px;width: 300px;"> | |
| 91 | - <el-option v-for="item in BaseList" :key="item.id" :label="item.fullName" :value="item.id"> | |
| 92 | - </el-option> | |
| 93 | - </el-select> | |
| 94 | - <el-button size="mini" type="text" @click="dialogVisible = true">没有找到表单?点击设计表单</el-button> | |
| 95 | - </el-form-item> | |
| 96 | - </el-col> | |
| 97 | - <el-col :span="24" v-if="false"> | |
| 98 | - <el-form-item label="状态" prop="state"> | |
| 99 | - <el-input v-model="dataForm.state" placeholder="请输入" clearable :style="{ width: '100%' }"> | |
| 100 | - </el-input> | |
| 101 | - </el-form-item> | |
| 102 | - </el-col> | |
| 103 | - <el-col :span="24" v-if="false"> | |
| 104 | - <el-form-item label="创建用户" prop="creatorUserId"> | |
| 105 | - <el-input v-model="dataForm.creatorUserId" placeholder="系统自动生成" readonly> | |
| 106 | - </el-input> | |
| 107 | - </el-form-item> | |
| 108 | - </el-col> | |
| 109 | - <el-col :span="24" v-if="false"> | |
| 110 | - <el-form-item label="创建时间" prop="creatorTime"> | |
| 111 | - <el-input v-model="dataForm.creatorTime" placeholder="系统自动生成" readonly> | |
| 112 | - </el-input> | |
| 113 | - </el-form-item> | |
| 114 | - </el-col> | |
| 115 | - <el-col :span="24" v-if="false"> | |
| 116 | - <el-form-item label="修改用户" prop="lastModifyUserId"> | |
| 117 | - <el-input v-model="dataForm.lastModifyUserId" placeholder="系统自动生成" readonly> | |
| 118 | - </el-input> | |
| 119 | - </el-form-item> | |
| 120 | - </el-col> | |
| 121 | - <el-col :span="24" v-if="false"> | |
| 122 | - <el-form-item label="修改时间" prop="lastModifyTime"> | |
| 123 | - <el-input v-model="dataForm.lastModifyTime" placeholder="系统自动生成" readonly> | |
| 124 | - </el-input> | |
| 125 | - </el-form-item> | |
| 126 | - </el-col> | |
| 127 | - </el-form> | |
| 128 | - </el-row> | |
| 129 | - <span slot="footer" class="dialog-footer"> | |
| 130 | - <el-button @click="visible = false">取 消</el-button> | |
| 131 | - <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail">确 定</el-button> | |
| 132 | - </span> | |
| 2 | + <el-dialog | |
| 3 | + title="行动详情" | |
| 4 | + :close-on-click-modal="false" | |
| 5 | + :visible.sync="visible" | |
| 6 | + class="NCC-dialog NCC-dialog_center baseSpecialAction" | |
| 7 | + lock-scroll | |
| 8 | + width="60%" | |
| 9 | + v-loading="loading" | |
| 10 | + > | |
| 11 | + <el-row :gutter="15" class="NCC-dialog-content"> | |
| 12 | + <h4>{{dataForm.title}}</h4> | |
| 13 | + <div class="content" v-html="dataForm.content"></div> | |
| 14 | + <div class="tag-group" v-if="isSHILevel"> | |
| 15 | + <span class="tag-group__title title-tag">传递区域:</span> | |
| 16 | + <el-tag v-for="(v, i) in dataForm.communicationAreasList" :key="i"> | |
| 17 | + {{ v }} | |
| 18 | + </el-tag> | |
| 133 | 19 | </div> |
| 134 | - </div> | |
| 135 | - <el-dialog title="专项行动表单设计" :visible.sync="dialogVisible" fullscreen @close="handleClose"> | |
| 136 | - <iframe | |
| 137 | - :src="nestedPageUrl" | |
| 138 | - width="100%" | |
| 139 | - :height="viewportHeight - 58 + 'px'" | |
| 140 | - frameborder="0" | |
| 141 | - allowfullscreen> | |
| 142 | - </iframe> | |
| 143 | - </el-dialog> | |
| 144 | - </div> | |
| 20 | + <div class="tag-group" v-if="isSHILevel"> | |
| 21 | + <span class="tag-group__title title-tag">传达外协:</span> | |
| 22 | + <el-tag v-for="(v, i) in dataForm.communicationOutsList" :key="i"> | |
| 23 | + {{ v }} | |
| 24 | + </el-tag> | |
| 25 | + </div> | |
| 26 | + <div class="tag-group" v-if="dataForm.deadline"> | |
| 27 | + <span class="tag-group__title title-tag">截止时间:</span> | |
| 28 | + {{ ncc.dateFormat(dataForm.deadline) || '--' }} | |
| 29 | + </div> | |
| 30 | + </el-row> | |
| 31 | + <span slot="footer" class="dialog-footer"> | |
| 32 | + <el-button type="primary" @click="visible = false">取 消</el-button> | |
| 33 | + </span> | |
| 34 | + </el-dialog> | |
| 145 | 35 | </template> |
| 146 | 36 | <script> |
| 147 | 37 | import request from "@/utils/request"; |
| 148 | 38 | import { getDictionaryDataSelector } from "@/api/systemData/dictionary"; |
| 149 | 39 | import { previewDataInterface } from "@/api/systemData/dataInterface"; |
| 150 | -import webDesignForm from './webDesign/Form.vue'; | |
| 151 | - | |
| 152 | 40 | export default { |
| 153 | - components: { webDesignForm }, | |
| 41 | + components: {}, | |
| 154 | 42 | props: [], |
| 155 | 43 | data() { |
| 44 | + var validatecommunicationArea = (rule, value, callback) => { | |
| 45 | + if (!this.dataForm.communicationOut.length && !value.length) { | |
| 46 | + callback(new Error('传输区域和传输外协不能同时为空!')); | |
| 47 | + } else { | |
| 48 | + callback(); | |
| 49 | + } | |
| 50 | + }; | |
| 51 | + var validatecommunicationOut = (rule, value, callback) => { | |
| 52 | + if (!this.dataForm.communicationArea.length && !value.length) { | |
| 53 | + callback(new Error('传输区域和传输外协不能同时为空!')); | |
| 54 | + } else { | |
| 55 | + callback(); | |
| 56 | + } | |
| 57 | + }; | |
| 156 | 58 | return { |
| 157 | 59 | loading: false, |
| 158 | 60 | visible: false, |
| 159 | 61 | isDetail: false, |
| 160 | - dialogVisible: false, | |
| 161 | - viewportHeight: 0, | |
| 162 | - nestedPageUrl:"http://8.130.38.56:8043/old/#/onlineDev/webDesign/indexNew", | |
| 163 | - // nestedPageUrl:"http://localhost:3000/#/onlineDev/webDesign/indexNew", | |
| 62 | + editType: '', // 修改类型 | |
| 164 | 63 | dataForm: { |
| 64 | + id: "", | |
| 165 | 65 | id: undefined, |
| 166 | - specialActionType: undefined, | |
| 167 | 66 | title: undefined, |
| 168 | 67 | content: undefined, |
| 169 | - releaseTime: null, | |
| 68 | + releaseTime: undefined, | |
| 170 | 69 | annex: [], |
| 171 | 70 | communicationArea: [], |
| 71 | + communicationOut: [], | |
| 172 | 72 | state: undefined, |
| 173 | 73 | creatorUserId: undefined, |
| 174 | 74 | creatorTime: undefined, |
| 175 | 75 | lastModifyUserId: undefined, |
| 176 | 76 | lastModifyTime: undefined, |
| 177 | - isOpenRelease: false, | |
| 77 | + deadline: undefined, | |
| 78 | + relationId: undefined, | |
| 79 | + communicationAreasList: [], | |
| 80 | + communicationOutsList: [], | |
| 178 | 81 | }, |
| 179 | 82 | rules: { |
| 180 | - specialActionType: [ | |
| 181 | - { | |
| 182 | - required: true, | |
| 183 | - message: "请输入类型", | |
| 184 | - trigger: "change", | |
| 185 | - }, | |
| 186 | - ], | |
| 187 | - title: [ | |
| 188 | - { | |
| 189 | - required: true, | |
| 190 | - message: "请输入标题", | |
| 191 | - trigger: "blur", | |
| 192 | - }, | |
| 193 | - ], | |
| 83 | + title: [{ required: true, message: "请输入标题", trigger: "blur" }], | |
| 84 | + content: [{ required: true, message: "请输入内容", trigger: "blur" }], | |
| 85 | + communicationArea: [{validator: validatecommunicationArea, trigger: 'blur'}], | |
| 86 | + communicationOut: [{validator: validatecommunicationOut, trigger: 'blur'}], | |
| 87 | + relationId: [{ required: true, message: "请选择专项行动填报表单", trigger: "blur"}], | |
| 88 | + deadline: [{ required: true, message: "请选择截止日期", trigger: "blur" }], | |
| 194 | 89 | }, |
| 195 | - CycleOptions: [ | |
| 196 | - { | |
| 197 | - value: '天', | |
| 198 | - label: '天' | |
| 199 | - }, { | |
| 200 | - value: '月', | |
| 201 | - label: '月' | |
| 202 | - }, | |
| 203 | - { | |
| 204 | - value: '季', | |
| 205 | - label: '季' | |
| 206 | - }, | |
| 207 | - { | |
| 208 | - value: '年', | |
| 209 | - label: '年' | |
| 210 | - }, | |
| 211 | - ], | |
| 212 | - specialActionTypeOptions: [], | |
| 213 | - communicationAreaOptions: [], | |
| 214 | - BaseList:[] | |
| 90 | + areaOptions: [], | |
| 91 | + communicationOutOptions: [], | |
| 92 | + BaseList:[], | |
| 93 | + viewportHeight: 0, | |
| 94 | + nestedPageUrl:"http://8.130.38.56:8043/old/#/onlineDev/webDesign/indexNew", | |
| 95 | + dialogVisible: false, | |
| 96 | + btnLoading: false | |
| 215 | 97 | }; |
| 216 | 98 | }, |
| 217 | - computed: {}, | |
| 99 | + computed: { | |
| 100 | + isSHILevel() { | |
| 101 | + // 判断角色是否为‘市级办公室’ | |
| 102 | + return this.$store.state.user.islader; | |
| 103 | + }, | |
| 104 | + }, | |
| 218 | 105 | watch: {}, |
| 219 | 106 | created() { |
| 220 | - this.getspecialActionTypeOptions(); | |
| 221 | - this.getcommunicationAreaOptions(); | |
| 222 | - this.getDataForm(); | |
| 223 | - this.updateViewportHeight(); | |
| 224 | - // 监听窗口大小变化事件 | |
| 225 | - window.addEventListener('resize', this.updateViewportHeight); | |
| 107 | + this.initAreaTypeList(); // 区县 | |
| 108 | + this.initCommunicationOutOptions(); // 外协 | |
| 226 | 109 | }, |
| 227 | - mounted() { }, | |
| 110 | + mounted() {}, | |
| 228 | 111 | beforeDestroy() { |
| 229 | - // 移除窗口大小变化事件监听器 | |
| 230 | - window.removeEventListener('resize', this.updateViewportHeight); | |
| 231 | 112 | }, |
| 232 | 113 | methods: { |
| 233 | - handleClose() { | |
| 234 | - // 这里是对话框关闭后需要执行的代码 | |
| 235 | - this.getDataForm(); | |
| 236 | - // 例如,你可以在这里添加任何其他的逻辑 | |
| 237 | - }, | |
| 238 | - //查询所有区县 | |
| 239 | - getcommunicationAreaOptions() { | |
| 240 | - request({ | |
| 241 | - url: "/extend/systeminformation/GetRegionList", | |
| 242 | - method: "get", | |
| 243 | - }).then((res) => { | |
| 244 | - this.communicationAreaOptions = res.data; | |
| 245 | - }); | |
| 246 | - }, | |
| 247 | - //查询表单 | |
| 248 | - getDataForm() { | |
| 249 | - request({ | |
| 250 | - url: "/visualdev/Base?type=1", | |
| 251 | - method: "get", | |
| 252 | - }).then((res) => { | |
| 253 | - this.BaseList = res.data.list[0].children; | |
| 254 | - console.log(this.BaseList) | |
| 255 | - }); | |
| 256 | - }, | |
| 257 | - updateViewportHeight() { | |
| 258 | - // 获取页面显示高度 | |
| 259 | - this.viewportHeight = window.innerHeight || document.documentElement.clientHeight; | |
| 260 | - }, | |
| 261 | - getspecialActionTypeOptions() { | |
| 262 | - getDictionaryDataSelector("576310654982423813").then((res) => { | |
| 263 | - this.specialActionTypeOptions = res.data.list; | |
| 264 | - }); | |
| 114 | + async initAreaTypeList() { | |
| 115 | + let list = this.$store.state.meta.area; | |
| 116 | + !list && (list = await this.$store.dispatch("getTypeListByCode", "area")); | |
| 117 | + this.areaOptions = list; | |
| 265 | 118 | }, |
| 266 | - selectAll() { | |
| 267 | - this.dataForm.communicationArea = this.communicationAreaOptions.map(option => option.id); | |
| 119 | + async initCommunicationOutOptions() { | |
| 120 | + let list = this.$store.state.meta.externalAssistanceList; | |
| 121 | + !list && (list = await this.$store.dispatch("getTypeListByCode", "externalAssistance")); | |
| 122 | + this.communicationOutOptions = list; | |
| 268 | 123 | }, |
| 269 | - invertSelection() { | |
| 270 | - this.dataForm.communicationArea = this.communicationAreaOptions | |
| 271 | - .filter(option => !this.dataForm.communicationArea.includes(option.id)) | |
| 272 | - .map(option => option.id); | |
| 273 | - }, | |
| 274 | - goBack() { | |
| 275 | - this.$emit("refresh"); | |
| 276 | - }, | |
| 277 | - init(id, isDetail) { | |
| 278 | - this.dataForm.id = id || 0; | |
| 124 | + init(row, isDetail) { | |
| 125 | + this.dataForm.id = row ? row.id : ''; | |
| 279 | 126 | this.visible = true; |
| 280 | 127 | this.isDetail = isDetail || false; |
| 128 | + this.editType = row ? row.state : ''; | |
| 281 | 129 | this.$nextTick(() => { |
| 282 | - this.$refs["elForm"].resetFields(); | |
| 283 | - if (this.dataForm.id) { | |
| 130 | + if(this.dataForm.id) { | |
| 131 | + this.loading = true; | |
| 284 | 132 | request({ |
| 285 | - url: "/Extend/BaseSpecialAction/" + this.dataForm.id, | |
| 286 | - method: "get", | |
| 133 | + url: `/Extend/BaseSpecialAction/${this.dataForm.id} `, | |
| 134 | + method: "GET", | |
| 287 | 135 | }).then((res) => { |
| 288 | 136 | this.dataForm = res.data; |
| 289 | - if (!this.dataForm.annex) this.dataForm.annex = []; | |
| 290 | - if (!this.dataForm.communicationArea) | |
| 291 | - this.dataForm.communicationArea = []; | |
| 292 | - }); | |
| 293 | - } | |
| 294 | - }); | |
| 295 | - }, | |
| 296 | - dataFormSubmit() { | |
| 297 | - this.$refs["elForm"].validate((valid) => { | |
| 298 | - if (valid) { | |
| 299 | - if (!this.dataForm.id) { | |
| 300 | - request({ | |
| 301 | - url: `/Extend/BaseSpecialAction`, | |
| 302 | - method: "post", | |
| 303 | - data: this.dataForm, | |
| 304 | - }).then((res) => { | |
| 305 | - this.$message({ | |
| 306 | - message: res.msg, | |
| 307 | - type: "success", | |
| 308 | - duration: 1000, | |
| 309 | - onClose: () => { | |
| 310 | - (this.visible = false), this.$emit("refresh", true); | |
| 311 | - }, | |
| 312 | - }); | |
| 137 | + let AreaList = []; | |
| 138 | + res.data.communicationArea && res.data.communicationArea.forEach(v => { | |
| 139 | + AreaList.push(this.areaOptions.find(item => item.id == v).fullName); | |
| 313 | 140 | }); |
| 314 | - } else { | |
| 315 | - request({ | |
| 316 | - url: "/Extend/BaseSpecialAction/" + this.dataForm.id, | |
| 317 | - method: "PUT", | |
| 318 | - data: this.dataForm, | |
| 319 | - }).then((res) => { | |
| 320 | - this.$message({ | |
| 321 | - message: res.msg, | |
| 322 | - type: "success", | |
| 323 | - duration: 1000, | |
| 324 | - onClose: () => { | |
| 325 | - this.visible = false; | |
| 326 | - this.$emit("refresh", true); | |
| 327 | - }, | |
| 328 | - }); | |
| 141 | + this.dataForm.communicationAreasList = AreaList; | |
| 142 | + let OutList = []; | |
| 143 | + res.data.communicationOut && res.data.communicationOut.forEach(v => { | |
| 144 | + OutList.push(this.communicationOutOptions.find(item => item.id == v).fullName); | |
| 329 | 145 | }); |
| 330 | - } | |
| 146 | + this.dataForm.communicationOutsList = OutList; | |
| 147 | + this.dataForm.annex = res.data.annex == null ? [] : res.data.annex; | |
| 148 | + this.loading = false; | |
| 149 | + }) | |
| 331 | 150 | } |
| 332 | 151 | }); |
| 333 | 152 | }, |
| 334 | 153 | }, |
| 335 | 154 | }; |
| 155 | + | |
| 336 | 156 | </script> |
| 337 | -<style> | |
| 338 | -/* .el-dialog__body{padding: 0px !important;} */ | |
| 157 | +<style lang="scss" scoped> | |
| 158 | +.baseSpecialAction { | |
| 159 | + h4 { | |
| 160 | + text-align: center; | |
| 161 | + line-height: 40px; | |
| 162 | + border-bottom: 1px solid #ccc; | |
| 163 | + } | |
| 164 | + .content { | |
| 165 | + padding: 20px; | |
| 166 | + border-bottom: 1px solid #ccc; | |
| 167 | + } | |
| 168 | + .tag-group { | |
| 169 | + margin: 10px 0; | |
| 170 | + } | |
| 171 | + .title-tag { | |
| 172 | + margin: 5px 8px; | |
| 173 | + } | |
| 174 | + :deep(.el-tag) { | |
| 175 | + margin: 4px 4px; | |
| 176 | + } | |
| 177 | +} | |
| 339 | 178 | </style> | ... | ... |
src/views/baseSpecialAction/index.vue
| ... | ... | @@ -34,8 +34,11 @@ |
| 34 | 34 | <div class="NCC-common-layout-main NCC-flex-main"> |
| 35 | 35 | <NCC-table v-loading="listLoading" :data="list"> |
| 36 | 36 | <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> --> |
| 37 | - <el-table-column prop="title" label="标题" align="left" show-overflow-tooltip/> | |
| 38 | - | |
| 37 | + <el-table-column prop="title" label="标题" align="left" show-overflow-tooltip> | |
| 38 | + <template slot-scope="scope"> | |
| 39 | + <div :class="`${ncc.timeStartTime(scope.row.creatorTime) ? 'red-start' : ''}`">{{scope.row.title}}</div> | |
| 40 | + </template> | |
| 41 | + </el-table-column> | |
| 39 | 42 | <el-table-column prop="creatorTime" label="发布时间" align="left" :formatter="ncc.tableDateFormat" show-overflow-tooltip/> |
| 40 | 43 | <el-table-column label="传达区域" prop="communicationArea" align="left" show-overflow-tooltip> |
| 41 | 44 | <template slot-scope="scope">{{ JSON.parse(scope.row.communicationArea) | dynamicText(communicationAreaOptions) }}</template> |
| ... | ... | @@ -43,19 +46,21 @@ |
| 43 | 46 | <el-table-column label="传达外协" prop="communicationOut" align="left" show-overflow-tooltip> |
| 44 | 47 | <template slot-scope="scope">{{ JSON.parse(scope.row.communicationOut) | dynamicText(communicationOutOptions) }}</template> |
| 45 | 48 | </el-table-column> |
| 49 | + <!-- <el-table-column label="内容" prop="content" align="left" show-overflow-tooltip /> --> | |
| 46 | 50 | <el-table-column prop="state" label="状态" align="left" show-overflow-tooltip width="100"> |
| 47 | 51 | <template slot-scope="scope"> |
| 48 | 52 | <el-tag :type="stateColor[`${scope.row.state}`]">{{scope.row.state}}</el-tag> |
| 49 | 53 | </template> |
| 50 | 54 | </el-table-column> |
| 51 | - <el-table-column prop="deadline" label="截止日期" show-overflow-tooltip :formatter="ncc.tableDateFormat" width="200" align="left"> | |
| 55 | + <el-table-column prop="deadline" label="截止时间" show-overflow-tooltip :formatter="ncc.tableDateFormat" width="200" align="left"> | |
| 52 | 56 | <template slot-scope="scope"> |
| 53 | 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> |
| 54 | 58 | </template> |
| 55 | 59 | </el-table-column> |
| 56 | 60 | <!-- <el-table-column prop="creatorUserId" show-overflow-tooltip label="创建用户" align="left"/> --> |
| 57 | - <el-table-column label="操作" fixed="right" width="150"> | |
| 61 | + <el-table-column label="操作" fixed="right" width="200"> | |
| 58 | 62 | <template slot-scope="scope"> |
| 63 | + <el-button type="text" @click="toFormDetail(scope.row)">行动详情</el-button> | |
| 59 | 64 | <el-button type="text" @click="addOrUpdateHandle(scope.row)">修改</el-button> |
| 60 | 65 | <el-button type="text" @click="toDetail(scope.row)" v-if="scope.row.state == '已发布并部署' && isSHILevel">处理情况</el-button> |
| 61 | 66 | </template> |
| ... | ... | @@ -67,6 +72,7 @@ |
| 67 | 72 | <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" /> |
| 68 | 73 | <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/> |
| 69 | 74 | <InfoForm v-if="InfoFormVisible" ref="InfoForm" @refresh="InfoFormVisible = false"/> |
| 75 | + <FormPage v-if="FormPageVisible" ref="FormPage" @refresh="FormPageVisible = false"/> | |
| 70 | 76 | </div> |
| 71 | 77 | </div> |
| 72 | 78 | </div> |
| ... | ... | @@ -76,8 +82,9 @@ import request from "@/utils/request"; |
| 76 | 82 | import NCCForm from "./Form"; |
| 77 | 83 | import ExportBox from "./ExportBox"; |
| 78 | 84 | import InfoForm from "./infoForm.vue"; |
| 85 | +import FormPage from "./FormPage.vue"; | |
| 79 | 86 | export default { |
| 80 | - components: { NCCForm, ExportBox, InfoForm }, | |
| 87 | + components: { NCCForm, ExportBox, InfoForm, FormPage }, | |
| 81 | 88 | data() { |
| 82 | 89 | return { |
| 83 | 90 | query: { |
| ... | ... | @@ -96,6 +103,7 @@ export default { |
| 96 | 103 | formVisible: false, |
| 97 | 104 | exportBoxVisible: false, |
| 98 | 105 | InfoFormVisible: false, |
| 106 | + FormPageVisible: false, | |
| 99 | 107 | communicationAreaOptions: [], |
| 100 | 108 | communicationOutOptions: [], |
| 101 | 109 | stateColor: { |
| ... | ... | @@ -169,6 +177,12 @@ export default { |
| 169 | 177 | this.$refs.InfoForm.init(row); |
| 170 | 178 | }); |
| 171 | 179 | }, |
| 180 | + toFormDetail(row) { | |
| 181 | + this.FormPageVisible = true; | |
| 182 | + this.$nextTick(() => { | |
| 183 | + this.$refs.FormPage.init(row); | |
| 184 | + }); | |
| 185 | + }, | |
| 172 | 186 | exportData() { |
| 173 | 187 | this.exportBoxVisible = true; |
| 174 | 188 | this.$nextTick(() => { |
| ... | ... | @@ -223,4 +237,15 @@ export default { |
| 223 | 237 | overflow-y: scroll; |
| 224 | 238 | } |
| 225 | 239 | } |
| 240 | +.red-start { | |
| 241 | + &::before { | |
| 242 | + content: ""; | |
| 243 | + display: inline-block; | |
| 244 | + margin-right: 4px; | |
| 245 | + width: 8px; | |
| 246 | + height: 8px; | |
| 247 | + background: red; | |
| 248 | + border-radius: 50%; | |
| 249 | + } | |
| 250 | +} | |
| 226 | 251 | </style> | ... | ... |
src/views/baseSpecialAction/infoForm.vue
| ... | ... | @@ -15,7 +15,7 @@ |
| 15 | 15 | <div>{{ form.title }}</div> |
| 16 | 16 | </el-col> |
| 17 | 17 | <el-col :span="10" class="form-item"> |
| 18 | - <div class="label w-100">截止日期:</div> | |
| 18 | + <div class="label w-100">截止时间:</div> | |
| 19 | 19 | <div>{{ ncc.dateFormat(form.deadline) }}</div> |
| 20 | 20 | </el-col> |
| 21 | 21 | <el-col :span="2" class="form-item"> | ... | ... |
src/views/baseSpecialhandle/index.vue
| ... | ... | @@ -27,27 +27,30 @@ |
| 27 | 27 | </el-col> |
| 28 | 28 | </el-form> |
| 29 | 29 | <div class="NCC-common-search-box-right"> |
| 30 | - <el-button type="primary" icon="el-icon-download" size="mini" @click="exportData()">导出</el-button> | |
| 30 | + <!-- <el-button type="success" icon="el-icon-plus" @click="addOrUpdateHandle()" size="mini" >新增</el-button> --> | |
| 31 | + <!-- <el-button type="primary" icon="el-icon-download" size="mini" @click="exportData()">导出</el-button> --> | |
| 31 | 32 | </div> |
| 32 | 33 | </el-row> |
| 33 | 34 | <div class="NCC-common-layout-main NCC-flex-main"> |
| 34 | 35 | <NCC-table v-loading="listLoading" :data="list"> |
| 35 | - <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip /> | |
| 36 | + <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip /> --> | |
| 36 | 37 | <el-table-column prop="title" label="标题" align="left" show-overflow-tooltip /> |
| 38 | + <!-- <el-table-column prop="content" label="内容" align="left" show-overflow-tooltip /> --> | |
| 37 | 39 | <el-table-column prop="state" label="状态" align="left" show-overflow-tooltip > |
| 38 | 40 | <template slot-scope="scope"> |
| 39 | 41 | <el-tag :type="scope.row.state == '已填写' ? 'success' : 'warning'">{{ scope.row.state }}</el-tag> |
| 40 | 42 | </template> |
| 41 | 43 | </el-table-column> |
| 42 | - <el-table-column prop="deadline" label="截止日期" align="left" :formatter="ncc.tableDateFormat" show-overflow-tooltip width="200"> | |
| 44 | + <el-table-column prop="deadline" label="截止日期" align="left" :formatter="ncc.tableDateFormat" show-overflow-tooltip> | |
| 43 | 45 | <template slot-scope="scope"> |
| 44 | 46 | <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> |
| 45 | 47 | </template> |
| 46 | 48 | </el-table-column> |
| 47 | - <el-table-column label="操作" fixed="right" width="130"> | |
| 49 | + <el-table-column label="操作" fixed="right" width="200"> | |
| 48 | 50 | <template slot-scope="scope"> |
| 51 | + <el-button type="text" @click="toDetail(scope.row)">行动详情</el-button> | |
| 49 | 52 | <el-button type="text" @click="toFillForm(scope.row)" :disabled="ncc.timeDeadLine(scope.row.deadline) == 'danger' && scope.row.state == '已填写'">{{scope.row.state == '已填写' ? '修改' : '处理'}}</el-button> |
| 50 | - <el-button type="text" @click="toFillForm(scope.row, true)" :disabled="scope.row.state != '已填写'">详情</el-button> | |
| 53 | + <el-button type="text" @click="toFillForm(scope.row, true)" :disabled="scope.row.state != '已填写'" v-if="isSHILevel">处理情况</el-button> | |
| 51 | 54 | </template> |
| 52 | 55 | </el-table-column> |
| 53 | 56 | </NCC-table> |
| ... | ... | @@ -58,6 +61,7 @@ |
| 58 | 61 | </div> |
| 59 | 62 | </div> |
| 60 | 63 | <NCCForm v-if="dialogVisible" ref="NCCForm" @refreshDataList="refresh" /> |
| 64 | + <FormPage v-if="FormPageVisible" ref="FormPage" @refresh="FormPageVisible = false"/> | |
| 61 | 65 | <!-- <el-dialog title="专项行动处理" :visible.sync="dialogVisible" fullscreen :modal="false"> |
| 62 | 66 | <iframe |
| 63 | 67 | :src="nestedPageUrl" |
| ... | ... | @@ -72,8 +76,10 @@ |
| 72 | 76 | <script> |
| 73 | 77 | import NCCForm from '@/views/baseSpecialAction/dynamicModel/list/Form' |
| 74 | 78 | import request from "@/utils/request"; |
| 79 | +import FormPage from "@/views/baseSpecialAction/FormPage.vue"; | |
| 80 | + | |
| 75 | 81 | export default { |
| 76 | - components: { NCCForm }, | |
| 82 | + components: { NCCForm, FormPage }, | |
| 77 | 83 | data() { |
| 78 | 84 | return { |
| 79 | 85 | query: { |
| ... | ... | @@ -95,6 +101,7 @@ export default { |
| 95 | 101 | nestedPageUrl: '', |
| 96 | 102 | viewportHeight: 0, |
| 97 | 103 | taskId: '', |
| 104 | + FormPageVisible: false, | |
| 98 | 105 | }; |
| 99 | 106 | }, |
| 100 | 107 | created() { |
| ... | ... | @@ -142,6 +149,13 @@ export default { |
| 142 | 149 | this.listLoading = false; |
| 143 | 150 | }); |
| 144 | 151 | }, |
| 152 | + toDetail(row) { | |
| 153 | + this.FormPageVisible = true; | |
| 154 | + this.$nextTick(() => { | |
| 155 | + row.id = row.specialActionId; | |
| 156 | + this.$refs.FormPage.init(row); | |
| 157 | + }); | |
| 158 | + }, | |
| 145 | 159 | toFillForm(row, isDetail) { |
| 146 | 160 | this.dialogVisible = true; |
| 147 | 161 | var Itemid = row.itemId || '';//数据id,没有的话就是新增 ,有的话就是修改 | ... | ... |
src/views/baseSystemInfo/DetailForm.vue
| ... | ... | @@ -180,6 +180,11 @@ |
| 180 | 180 | <el-table-column show-overflow-tooltip prop="companyStr" label="运营主体"></el-table-column> |
| 181 | 181 | <el-table-column show-overflow-tooltip label="问题类型" prop="questionType" align="left" /> |
| 182 | 182 | <el-table-column show-overflow-tooltip prop="questionClass" label="关键词"></el-table-column> |
| 183 | + <el-table-column label="操作" fixed="right" width="100"> | |
| 184 | + <template slot-scope="scope"> | |
| 185 | + <el-button type="text" @click="addOrUpdateHandle(scope.row, true)">详情</el-button> | |
| 186 | + </template> | |
| 187 | + </el-table-column> | |
| 183 | 188 | </el-table> |
| 184 | 189 | </el-tab-pane> |
| 185 | 190 | <el-tab-pane label="网信执法记录" name="4"> |
| ... | ... | @@ -196,6 +201,11 @@ |
| 196 | 201 | <el-tag v-if="scope.row.state" :type="ncc.getStateTagType(scope.row.state, stateOptions)">{{ scope.row.state | dynamicTextUP(stateOptions) }}</el-tag> |
| 197 | 202 | </template> |
| 198 | 203 | </el-table-column> |
| 204 | + <el-table-column label="操作" fixed="right" width="100"> | |
| 205 | + <template slot-scope="scope"> | |
| 206 | + <el-button type="text" @click="addOrUpdateHandle(scope.row, true)">详情</el-button> | |
| 207 | + </template> | |
| 208 | + </el-table-column> | |
| 199 | 209 | </el-table> |
| 200 | 210 | </el-tab-pane> |
| 201 | 211 | <el-tab-pane label="数据日志" name="5"> |
| ... | ... | @@ -229,6 +239,9 @@ |
| 229 | 239 | </el-tab-pane> |
| 230 | 240 | </el-tabs> |
| 231 | 241 | </el-row> |
| 242 | + <!-- 案件处理 --> | |
| 243 | + <HandForm v-if="HandFormVisible" ref="HandForm" @refresh="(val) => {taskRefresh('HandFormVisible', val)}" /> | |
| 244 | + <ReportForm v-if="ReportFormVisible" ref="ReportForm" @refresh="(val) => {taskRefresh('ReportFormVisible', val)}" /> | |
| 232 | 245 | <span slot="footer" class="dialog-footer"> |
| 233 | 246 | <el-button @click="visible = false">取 消</el-button> |
| 234 | 247 | </span> |
| ... | ... | @@ -238,8 +251,10 @@ |
| 238 | 251 | import request from "@/utils/request"; |
| 239 | 252 | import { getSystemDetail, getUpdataRecord } from "@/api/baseData/info"; |
| 240 | 253 | import { getCompanyInfoById } from "@/api/baseData/company"; |
| 254 | +import HandForm from '@/views/baseCaseHandling/Form.vue' // 案件处理 | |
| 255 | +import ReportForm from '@/views/baseInspectionReport/Form.vue' // 案件处理 | |
| 241 | 256 | export default { |
| 242 | - components: {}, | |
| 257 | + components: {HandForm, ReportForm}, | |
| 243 | 258 | props: [], |
| 244 | 259 | data() { |
| 245 | 260 | return { |
| ... | ... | @@ -282,6 +297,8 @@ export default { |
| 282 | 297 | record_total: '', |
| 283 | 298 | questionTypeOptions : [], |
| 284 | 299 | stateOptions: [], |
| 300 | + HandFormVisible: false, | |
| 301 | + ReportFormVisible: false, | |
| 285 | 302 | }; |
| 286 | 303 | }, |
| 287 | 304 | computed: { |
| ... | ... | @@ -412,6 +429,31 @@ export default { |
| 412 | 429 | this.queryList.pageIndex += 1; |
| 413 | 430 | }); |
| 414 | 431 | }, |
| 432 | + | |
| 433 | + addOrUpdateHandle(row, isDetail) { | |
| 434 | + switch (this.activeName) { | |
| 435 | + case "3": | |
| 436 | + this.ReportFormVisible = true; | |
| 437 | + this.$nextTick(() => { | |
| 438 | + this.$refs.ReportForm.init(row.id, true); | |
| 439 | + }); | |
| 440 | + break; | |
| 441 | + case "4": | |
| 442 | + this.HandFormVisible = true; | |
| 443 | + this.$nextTick(() => { | |
| 444 | + this.$refs.HandForm.init(row.id, true); | |
| 445 | + }); | |
| 446 | + break; | |
| 447 | + | |
| 448 | + default: | |
| 449 | + break; | |
| 450 | + } | |
| 451 | + }, | |
| 452 | + | |
| 453 | + taskRefresh(key ,isrRefresh) { | |
| 454 | + this[`${key}`] = false; | |
| 455 | + if (isrRefresh) this.reset(); | |
| 456 | + }, | |
| 415 | 457 | |
| 416 | 458 | goBack() { |
| 417 | 459 | this.$emit("refresh"); | ... | ... |
src/views/baseSystemInfo/index.vue
| ... | ... | @@ -79,7 +79,7 @@ |
| 79 | 79 | </el-form> |
| 80 | 80 | <div class="NCC-common-search-box-right"> |
| 81 | 81 | <!-- <el-button type="success" icon="el-icon-upload2" size="mini">导入</el-button> --> |
| 82 | - <!-- <el-button type="primary" icon="el-icon-download" size="mini" @click="toExport">导出</el-button> --> | |
| 82 | + <el-button type="primary" icon="el-icon-download" size="mini" @click="toExport">导出</el-button> | |
| 83 | 83 | </div> |
| 84 | 84 | </el-row> |
| 85 | 85 | <div class="NCC-common-layout-main NCC-flex-main"> |
| ... | ... | @@ -126,13 +126,13 @@ |
| 126 | 126 | <el-button size="mini" type="text" @click="toDetail(scope.row)">查看</el-button> |
| 127 | 127 | <el-button size="mini" type="text" @click="toChangeArea(scope.row)" >归属地变更</el-button> |
| 128 | 128 | <el-button size="mini" type="text" @click="toInspection(scope.row)" >上报</el-button> |
| 129 | - <!-- <el-button type="text" style="color: red;" @click="delNew(scope.row)">删除</el-button> --> | |
| 129 | + <!-- <el-button type="text" style="color: red;" @click="delNew(scope.row)" v-if="isSHILevel">删除</el-button> --> | |
| 130 | 130 | </template> |
| 131 | 131 | </el-table-column> |
| 132 | 132 | </NCC-table> |
| 133 | 133 | <pagination |
| 134 | 134 | :total="total" |
| 135 | - :page.sync="listQuery.pageIndex" | |
| 135 | + :page.sync="listQuery.currentPage" | |
| 136 | 136 | :limit.sync="listQuery.pageSize" |
| 137 | 137 | @pagination="initList" |
| 138 | 138 | /> |
| ... | ... | @@ -222,7 +222,7 @@ export default { |
| 222 | 222 | principalPhone: "", |
| 223 | 223 | }, |
| 224 | 224 | listQuery: { |
| 225 | - pageIndex: 1, | |
| 225 | + currentPage: 1, | |
| 226 | 226 | pageSize: 10, |
| 227 | 227 | sort: "desc", |
| 228 | 228 | sidx: "", |
| ... | ... | @@ -269,12 +269,19 @@ export default { |
| 269 | 269 | ], |
| 270 | 270 | }; |
| 271 | 271 | }, |
| 272 | + | |
| 272 | 273 | created() { |
| 273 | 274 | this.initSystemTypeList(); |
| 274 | 275 | this.initAreaTypeList(); |
| 275 | 276 | this.initList(); |
| 276 | 277 | }, |
| 277 | 278 | mounted() {}, |
| 279 | + computed: { | |
| 280 | + isSHILevel() { | |
| 281 | + // 判断角色是否为‘市级办公室’ | |
| 282 | + return this.$store.state.user.islader; | |
| 283 | + }, | |
| 284 | + }, | |
| 278 | 285 | watch: { |
| 279 | 286 | $route: { |
| 280 | 287 | handler: function (route) { |
| ... | ... | @@ -304,7 +311,7 @@ export default { |
| 304 | 311 | }, |
| 305 | 312 | search() { |
| 306 | 313 | this.listQuery = { |
| 307 | - pageIndex: 1, | |
| 314 | + currentPage: 1, | |
| 308 | 315 | pageSize: 10, |
| 309 | 316 | sort: "desc", |
| 310 | 317 | sidx: "", | ... | ... |
src/views/homePage/components/Menu.vue
src/views/overView/Overview.vue
| ... | ... | @@ -119,7 +119,7 @@ |
| 119 | 119 | <template slot-scope="scope"> |
| 120 | 120 | <el-button type="text" @click="checkDetail(scope.row, true)">详情</el-button> |
| 121 | 121 | <el-button type="text" @click="checkDetail(scope.row)" v-if="isSHILevel">编辑</el-button> |
| 122 | - <el-button type="text" style="color: red;" @click="delNew(scope.row)">删除</el-button> | |
| 122 | + <el-button type="text" style="color: red;" @click="delNew(scope.row)" v-if="isSHILevel">删除</el-button> | |
| 123 | 123 | </template> |
| 124 | 124 | </el-table-column> |
| 125 | 125 | </el-table> |
| ... | ... | @@ -334,7 +334,7 @@ export default { |
| 334 | 334 | let openObject = this.getDialog(type); |
| 335 | 335 | this[openObject.visible] = true; |
| 336 | 336 | this.$nextTick(() => { |
| 337 | - this.$refs[`${openObject.node}`].init(row.taskCorrelationId, true, openObject.isDetail, 1); | |
| 337 | + this.$refs[`${openObject.node}`].init(row.taskCorrelationId, openObject.isDetail, 1); | |
| 338 | 338 | }) |
| 339 | 339 | } |
| 340 | 340 | }, | ... | ... |