Commit 73755355953fb70bb66a63013f7a2e0df3c48328

Authored by monkeyhouyi
1 parent 65aeaaa1

优化

src/assets/style/common.scss
@@ -68,10 +68,10 @@ a { @@ -68,10 +68,10 @@ a {
68 justify-content: flex-start; 68 justify-content: flex-start;
69 align-items: center; 69 align-items: center;
70 flex-direction: row; 70 flex-direction: row;
71 - color: #757678; 71 + color: #000;
72 line-height: 30px; 72 line-height: 30px;
73 .label { 73 .label {
74 - color: #000; 74 + color: #757678;
75 text-align: right; 75 text-align: right;
76 padding: 0 5px; 76 padding: 0 5px;
77 &.w-100 { 77 &.w-100 {
src/components/CompanyForm/index.vue
@@ -11,13 +11,14 @@ @@ -11,13 +11,14 @@
11 :visible.sync="visible" 11 :visible.sync="visible"
12 lock-scroll 12 lock-scroll
13 append-to-body 13 append-to-body
14 - width="60%" 14 + width="70%"
15 top="15vh" 15 top="15vh"
16 :modal-append-to-body="false" 16 :modal-append-to-body="false"
17 class="NCC-dialog NCC-dialog_center company-dialog" 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 <el-col :span="24" v-if="false"> 22 <el-col :span="24" v-if="false">
22 <el-form-item label="主键" prop="id"> 23 <el-form-item label="主键" prop="id">
23 <el-input v-model="dataForm.id" placeholder="请输入" clearable :style='{ "width": "100%" }'> 24 <el-input v-model="dataForm.id" placeholder="请输入" clearable :style='{ "width": "100%" }'>
@@ -26,61 +27,72 @@ @@ -26,61 +27,72 @@
26 </el-col> 27 </el-col>
27 <el-col :span="24"> 28 <el-col :span="24">
28 <el-form-item label="运营主体名称" prop="companyName"> 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 :style='{ "width": "100%" }'> 31 :style='{ "width": "100%" }'>
31 </el-input> 32 </el-input>
32 </el-form-item> 33 </el-form-item>
33 </el-col> 34 </el-col>
34 <el-col :span="24"> 35 <el-col :span="24">
35 <el-form-item label="社会信用代" prop="socialCreditAgency"> 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 :style='{ "width": "100%" }'> 38 :style='{ "width": "100%" }'>
38 </el-input> 39 </el-input>
39 </el-form-item> 40 </el-form-item>
40 </el-col> 41 </el-col>
41 <el-col :span="24"> 42 <el-col :span="24">
42 <el-form-item label="运营主体法人" prop="legalPerson"> 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 </el-input> 45 </el-input>
45 </el-form-item> 46 </el-form-item>
46 </el-col> 47 </el-col>
47 <el-col :span="24"> 48 <el-col :span="24">
48 <el-form-item label="运营主体地址" prop="address"> 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 </el-input> 51 </el-input>
51 </el-form-item> 52 </el-form-item>
52 </el-col> 53 </el-col>
53 <el-col :span="24"> 54 <el-col :span="24">
54 <el-form-item label="联系方式" prop="contactInformation"> 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 :style='{ "width": "100%" }'> 57 :style='{ "width": "100%" }'>
57 </el-input> 58 </el-input>
58 </el-form-item> 59 </el-form-item>
59 </el-col> 60 </el-col>
60 <el-col :span="24"> 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 <el-form-item label="其他信息" prop="otherInfo"> 69 <el-form-item label="其他信息" prop="otherInfo">
62 <NCC-Quill v-model="dataForm.otherInfo" placeholder="请输入内容..."> 70 <NCC-Quill v-model="dataForm.otherInfo" placeholder="请输入内容...">
63 </NCC-Quill> 71 </NCC-Quill>
64 </el-form-item> 72 </el-form-item>
65 </el-col> 73 </el-col>
66 </el-form> 74 </el-form>
  75 + </el-row>
67 <span slot="footer" class="dialog-footer"> 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 </span> 79 </span>
71 </el-dialog> 80 </el-dialog>
72 </div> 81 </div>
73 </template> 82 </template>
74 83
75 <script> 84 <script>
  85 +import infoMixin from "@/mixins/info";
76 import request from '@/utils/request' 86 import request from '@/utils/request'
77 export default { 87 export default {
78 name: "companyForm", 88 name: "companyForm",
79 - props: {}, 89 + mixins: [infoMixin],
  90 + props: {},
80 data() { 91 data() {
81 return { 92 return {
82 visible: false, 93 visible: false,
83 loading: false, 94 loading: false,
  95 + areaOptions: [],
84 dataForm: { 96 dataForm: {
85 id: '', 97 id: '',
86 id: undefined, 98 id: undefined,
@@ -113,7 +125,9 @@ export default { @@ -113,7 +125,9 @@ export default {
113 }, 125 },
114 watch: {}, 126 watch: {},
115 mounted() {}, 127 mounted() {},
116 - created() {}, 128 + created() {
  129 + this.initAreaTypeList();
  130 + },
117 methods: { 131 methods: {
118 close() { 132 close() {
119 this.visible = false; 133 this.visible = false;
@@ -122,7 +136,7 @@ export default { @@ -122,7 +136,7 @@ export default {
122 this.visible = true; 136 this.visible = true;
123 this.$refs['elForm'].resetFields(); 137 this.$refs['elForm'].resetFields();
124 }, 138 },
125 - async confirm() { 139 + async dataFormSubmit() {
126 this.$refs['elForm'].validate((valid) => { 140 this.$refs['elForm'].validate((valid) => {
127 if (valid) { 141 if (valid) {
128 this.btnLoading = true; 142 this.btnLoading = true;
src/components/InfoForm/index.vue
@@ -376,13 +376,14 @@ export default { @@ -376,13 +376,14 @@ export default {
376 }, 376 },
377 // 无限下拉 377 // 无限下拉
378 nextCompanyList() { 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 this.listQuery_company.pageIndex++; 380 this.listQuery_company.pageIndex++;
381 this.initCompanyList(); 381 this.initCompanyList();
382 }, 382 },
383 async companyChange(val) { 383 async companyChange(val) {
384 // 公司信息 384 // 公司信息
385 let { data } = await getCompanyInfoById(val); 385 let { data } = await getCompanyInfoById(val);
  386 + if(!data) return;
386 this.companyInfo = data; 387 this.companyInfo = data;
387 this.isShowCompanyInfo = true; 388 this.isShowCompanyInfo = true;
388 }, 389 },
src/styles/variables.scss
@@ -12,6 +12,7 @@ $panGreen: #30B08F; @@ -12,6 +12,7 @@ $panGreen: #30B08F;
12 $menuText:#fff; 12 $menuText:#fff;
13 $menuActiveText:#409EFF; 13 $menuActiveText:#409EFF;
14 $subMenuActiveText:#fff; // https://github.com/ElemeFE/element/issues/12951 14 $subMenuActiveText:#fff; // https://github.com/ElemeFE/element/issues/12951
  15 +// $subMenuActiveText: #e4e7ed3b; // https://github.com/ElemeFE/element/issues/12951
15 16
16 $menuBg:#001529; 17 $menuBg:#001529;
17 $menuHover:#1890ff; 18 $menuHover:#1890ff;
src/utils/ncc.js
@@ -233,6 +233,12 @@ const ncc = { @@ -233,6 +233,12 @@ const ncc = {
233 return 'primary' 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 stateDeadLine(time){ 242 stateDeadLine(time){
237 let date = (new Date()).getTime(); 243 let date = (new Date()).getTime();
238 let timeDiff = time - date; 244 let timeDiff = time - date;
src/views/DisposalSuggestions/Form.vue
@@ -11,80 +11,80 @@ @@ -11,80 +11,80 @@
11 <el-row :gutter="15" class="NCC-dialog-content"> 11 <el-row :gutter="15" class="NCC-dialog-content">
12 <el-col :span="10" style="border-right: 1px solid #e6e6e6; height: 400px;"> 12 <el-col :span="10" style="border-right: 1px solid #e6e6e6; height: 400px;">
13 <el-row> 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 <el-col :span="24"> 15 <el-col :span="24">
41 <div class="form-item"> 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 </div> 19 </div>
45 </el-col> 20 </el-col>
46 <el-col :span="24"> 21 <el-col :span="24">
47 <div class="form-item"> 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 </div> 86 </div>
51 </el-col> 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 </el-row> 88 </el-row>
89 </el-col> 89 </el-col>
90 <el-col :span="14"> 90 <el-col :span="14">
src/views/DisposalSuggestions/HandleForm.vue
@@ -10,76 +10,76 @@ @@ -10,76 +10,76 @@
10 > 10 >
11 <el-row :gutter="15" class="NCC-dialog-content"> 11 <el-row :gutter="15" class="NCC-dialog-content">
12 <el-col :span="10" style="border-right: 1px solid #e6e6e6; height: 400px;"> 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 <el-col :span="24"> 15 <el-col :span="24">
41 <div class="form-item"> 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 </div> 19 </div>
45 </el-col> 20 </el-col>
46 <el-col :span="24"> 21 <el-col :span="24">
47 <div class="form-item"> 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 </div> 25 </div>
51 </el-col> 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 </el-col> 83 </el-col>
84 <el-col :span="14"> 84 <el-col :span="14">
85 <el-row> 85 <el-row>
src/views/DisposalSuggestions/index.vue
@@ -8,12 +8,12 @@ @@ -8,12 +8,12 @@
8 <el-form @submit.native.prevent size="mini"> 8 <el-form @submit.native.prevent size="mini">
9 <el-col :span="4"> 9 <el-col :span="4">
10 <el-form-item label=""> 10 <el-form-item label="">
11 - <el-input v-model="query.platformName" placeholder="请输入平台名称" clearable /> 11 + <el-input v-model="query.platformName" placeholder="请输入应用名称" clearable />
12 </el-form-item> 12 </el-form-item>
13 </el-col> 13 </el-col>
14 <el-col :span="4"> 14 <el-col :span="4">
15 <el-form-item label=""> 15 <el-form-item label="">
16 - <el-select v-model="query.platformType" placeholder="请选择平台类型" clearable > 16 + <el-select v-model="query.platformType" placeholder="请选择应用类型" clearable >
17 <el-option v-for="(item, index) in systemTypeOptions" :key="index" :label="item.FullName" :value="item.Id" /> 17 <el-option v-for="(item, index) in systemTypeOptions" :key="index" :label="item.FullName" :value="item.Id" />
18 </el-select> 18 </el-select>
19 </el-form-item> 19 </el-form-item>
@@ -37,8 +37,8 @@ @@ -37,8 +37,8 @@
37 </el-row> 37 </el-row>
38 <div class="NCC-common-layout-main NCC-flex-main"> 38 <div class="NCC-common-layout-main NCC-flex-main">
39 <NCC-table v-loading="listLoading" :data="list"> 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 <template slot-scope="scope">{{ scope.row.platformType | dynamicTextUP(systemTypeOptions) }}</template> 42 <template slot-scope="scope">{{ scope.row.platformType | dynamicTextUP(systemTypeOptions) }}</template>
43 </el-table-column> 43 </el-table-column>
44 <el-table-column show-overflow-tooltip label="问题类型" prop="questionType" align="left"> 44 <el-table-column show-overflow-tooltip label="问题类型" prop="questionType" align="left">
src/views/Login.vue
@@ -56,8 +56,8 @@ export default { @@ -56,8 +56,8 @@ export default {
56 data() { 56 data() {
57 return { 57 return {
58 form: { 58 form: {
59 - account: "wd", // cdoffice  
60 - password: "123456", // 123456 59 + account: "", // cdoffice, xin
  60 + password: "", // 123456
61 }, 61 },
62 rules: { 62 rules: {
63 account: { required: true, message: "用户名不能为空", trigger: "blur" }, 63 account: { required: true, message: "用户名不能为空", trigger: "blur" },
src/views/baseCaseHandling/Form.vue
@@ -7,8 +7,9 @@ @@ -7,8 +7,9 @@
7 lock-scroll 7 lock-scroll
8 width="50%" 8 width="50%"
9 v-loading="loading" 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 <el-form 13 <el-form
13 ref="elForm" 14 ref="elForm"
14 :model="dataForm" 15 :model="dataForm"
@@ -24,39 +25,51 @@ @@ -24,39 +25,51 @@
24 </el-form-item> 25 </el-form-item>
25 </el-col> 26 </el-col>
26 <el-col :span="24"> 27 <el-col :span="24">
27 - <el-form-item label="系统名称" prop="systemName"> 28 + <el-form-item label="案件名称" prop="systemName">
28 <el-select 29 <el-select
  30 + ref="select"
29 v-model="dataForm.systemName" 31 v-model="dataForm.systemName"
30 filterable 32 filterable
31 remote 33 remote
32 reserve-keyword 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 :disabled="formType" 39 :disabled="formType"
37 :loading="system_loading"> 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 </el-select> 42 </el-select>
45 </el-form-item> 43 </el-form-item>
46 </el-col> 44 </el-col>
47 <el-col :span="24"> 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 </el-form-item> 63 </el-form-item>
51 </el-col> 64 </el-col>
52 <el-col :span="24"> 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 </el-form-item> 68 </el-form-item>
56 </el-col> 69 </el-col>
57 <el-col :span="24"> 70 <el-col :span="24">
58 <el-form-item label="备案号" prop="recordNumber"> 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 </el-form-item> 73 </el-form-item>
61 </el-col> 74 </el-col>
62 <el-col :span="24"> 75 <el-col :span="24">
@@ -103,7 +116,40 @@ @@ -103,7 +116,40 @@
103 </el-col> 116 </el-col>
104 </el-form> 117 </el-form>
105 </el-row> 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 <span slot="footer" class="dialog-footer"> 153 <span slot="footer" class="dialog-footer">
108 <el-button @click="visible = false">取 消</el-button> 154 <el-button @click="visible = false">取 消</el-button>
109 <template v-if="!isDetail && !formType"> 155 <template v-if="!isDetail && !formType">
@@ -120,6 +166,7 @@ @@ -120,6 +166,7 @@
120 import infoMixin from "@/mixins/info"; 166 import infoMixin from "@/mixins/info";
121 import request from "@/utils/request"; 167 import request from "@/utils/request";
122 import { getSystemDetail } from "@/api/baseData/info"; 168 import { getSystemDetail } from "@/api/baseData/info";
  169 +import { getCompanyInfoList, getCompanyInfoById } from "@/api/baseData/company";
123 import { dynamicTextUP } from "@/filters/index"; 170 import { dynamicTextUP } from "@/filters/index";
124 171
125 export default { 172 export default {
@@ -150,6 +197,7 @@ export default { @@ -150,6 +197,7 @@ export default {
150 closingReport: undefined, 197 closingReport: undefined,
151 enforceType: undefined, 198 enforceType: undefined,
152 enforcecontent: undefined, 199 enforcecontent: undefined,
  200 + isHaveSystem: undefined,
153 }, 201 },
154 rules: { 202 rules: {
155 systemName: [ 203 systemName: [
@@ -159,7 +207,7 @@ export default { @@ -159,7 +207,7 @@ export default {
159 { required: true, message: "请选择所属区域", trigger: "change" } 207 { required: true, message: "请选择所属区域", trigger: "change" }
160 ], 208 ],
161 enforceType: [ 209 enforceType: [
162 - { required: true, message: "请选择执法方式", trigger: "change" } 210 + { required: true, message: "请选择执法方式", trigger: "bulr" }
163 ], 211 ],
164 enforcecontent: [ 212 enforcecontent: [
165 { required: true, message: "请填写执法说明", trigger: "bulr" } 213 { required: true, message: "请填写执法说明", trigger: "bulr" }
@@ -169,6 +217,7 @@ export default { @@ -169,6 +217,7 @@ export default {
169 system_loading: false, 217 system_loading: false,
170 areaOptions: [], 218 areaOptions: [],
171 btnLoading: false, 219 btnLoading: false,
  220 + companyOptions: []
172 }; 221 };
173 }, 222 },
174 computed: { 223 computed: {
@@ -182,24 +231,46 @@ export default { @@ -182,24 +231,46 @@ export default {
182 this.getSystemSelect(); 231 this.getSystemSelect();
183 this.initSystemTypeList(); 232 this.initSystemTypeList();
184 this.initAreaTypeList(); 233 this.initAreaTypeList();
  234 + this.initCompanyList();
185 }, 235 },
186 mounted() {}, 236 mounted() {},
187 methods: { 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 this.system_loading = true; 249 this.system_loading = true;
194 request({ 250 request({
195 url: "/Extend/basesysteminfo/GetNoPagingList", 251 url: "/Extend/basesysteminfo/GetNoPagingList",
196 method: "get", 252 method: "get",
197 - params: query,  
198 }).then(({data}) => { 253 }).then(({data}) => {
199 this.systemOption = data; 254 this.systemOption = data;
200 this.system_loading = false; 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 systemChange(val) { 275 systemChange(val) {
205 getSystemDetail(val).then(({data}) => { 276 getSystemDetail(val).then(({data}) => {
@@ -209,6 +280,11 @@ export default { @@ -209,6 +280,11 @@ export default {
209 this.dataForm.districtCounty = data.areaId; 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 goBack() { 288 goBack() {
213 this.$emit("refresh"); 289 this.$emit("refresh");
214 }, 290 },
@@ -218,19 +294,17 @@ export default { @@ -218,19 +294,17 @@ export default {
218 this.dataForm.id = id || 0; 294 this.dataForm.id = id || 0;
219 this.isDetail = isDetail || false; 295 this.isDetail = isDetail || false;
220 this.visible = true; 296 this.visible = true;
  297 + this.$forceUpdate();
221 this.$nextTick(() => { 298 this.$nextTick(() => {
222 - this.$refs["elForm"].resetFields(); 299 + !isDetail && this.$refs["elForm"].resetFields();
223 if (this.dataForm.id) { 300 if (this.dataForm.id) {
224 this.loading = true; 301 this.loading = true;
225 request({ 302 request({
226 url: `/Extend/BaseCaseHandling/${this.dataForm.id}`, 303 url: `/Extend/BaseCaseHandling/${this.dataForm.id}`,
227 method: "GET", 304 method: "GET",
228 - }).then((res) => { 305 + }).then(async (res) => {
229 this.dataForm = res.data; 306 this.dataForm = res.data;
230 this.loading = false; 307 this.loading = false;
231 - this.$nextTick(() => {  
232 - this.$refs["elForm"].clearValidate();  
233 - })  
234 }).catch(() => { 308 }).catch(() => {
235 this.loading = false; 309 this.loading = false;
236 }); 310 });
src/views/baseComapnyInfo/Form.vue
@@ -12,33 +12,33 @@ @@ -12,33 +12,33 @@
12 </el-col> 12 </el-col>
13 <el-col :span="24"> 13 <el-col :span="24">
14 <el-form-item label="运营主体名称" prop="companyName"> 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 :style='{ "width": "100%" }'> 16 :style='{ "width": "100%" }'>
17 </el-input> 17 </el-input>
18 </el-form-item> 18 </el-form-item>
19 </el-col> 19 </el-col>
20 <el-col :span="24"> 20 <el-col :span="24">
21 <el-form-item label="社会信用代" prop="socialCreditAgency"> 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 :style='{ "width": "100%" }'> 23 :style='{ "width": "100%" }'>
24 </el-input> 24 </el-input>
25 </el-form-item> 25 </el-form-item>
26 </el-col> 26 </el-col>
27 <el-col :span="24"> 27 <el-col :span="24">
28 <el-form-item label="运营主体法人" prop="legalPerson"> 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 </el-input> 30 </el-input>
31 </el-form-item> 31 </el-form-item>
32 </el-col> 32 </el-col>
33 <el-col :span="24"> 33 <el-col :span="24">
34 <el-form-item label="运营主体地址" prop="address"> 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 </el-input> 36 </el-input>
37 </el-form-item> 37 </el-form-item>
38 </el-col> 38 </el-col>
39 <el-col :span="24"> 39 <el-col :span="24">
40 <el-form-item label="联系方式" prop="contactInformation"> 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 :style='{ "width": "100%" }'> 42 :style='{ "width": "100%" }'>
43 </el-input> 43 </el-input>
44 </el-form-item> 44 </el-form-item>
@@ -60,7 +60,7 @@ @@ -60,7 +60,7 @@
60 </el-row> 60 </el-row>
61 <span slot="footer" class="dialog-footer"> 61 <span slot="footer" class="dialog-footer">
62 <el-button @click="visible = false">取 消</el-button> 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 </span> 64 </span>
65 </el-dialog> 65 </el-dialog>
66 </template> 66 </template>
@@ -108,6 +108,7 @@ export default { @@ -108,6 +108,7 @@ export default {
108 }, 108 },
109 ], 109 ],
110 }, 110 },
  111 + btnLoading: false,
111 } 112 }
112 }, 113 },
113 computed: {}, 114 computed: {},
@@ -143,6 +144,7 @@ export default { @@ -143,6 +144,7 @@ export default {
143 dataFormSubmit() { 144 dataFormSubmit() {
144 this.$refs['elForm'].validate((valid) => { 145 this.$refs['elForm'].validate((valid) => {
145 if (valid) { 146 if (valid) {
  147 + this.btnLoading = true;
146 if (!this.dataForm.id) { 148 if (!this.dataForm.id) {
147 request({ 149 request({
148 url: `/Extend/BaseComapnyInfo`, 150 url: `/Extend/BaseComapnyInfo`,
@@ -155,10 +157,11 @@ export default { @@ -155,10 +157,11 @@ export default {
155 duration: 1000, 157 duration: 1000,
156 onClose: () => { 158 onClose: () => {
157 this.visible = false, 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 } else { 165 } else {
163 request({ 166 request({
164 url: '/Extend/BaseComapnyInfo/' + this.dataForm.id, 167 url: '/Extend/BaseComapnyInfo/' + this.dataForm.id,
@@ -171,10 +174,11 @@ export default { @@ -171,10 +174,11 @@ export default {
171 duration: 1000, 174 duration: 1000,
172 onClose: () => { 175 onClose: () => {
173 this.visible = false 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,7 +57,7 @@
57 <el-table-column label="操作" fixed="right" width="100"> 57 <el-table-column label="操作" fixed="right" width="100">
58 <template slot-scope="scope"> 58 <template slot-scope="scope">
59 <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">编辑</el-button> 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 </template> 61 </template>
62 </el-table-column> 62 </el-table-column>
63 </NCC-table> 63 </NCC-table>
src/views/baseInspectionReport/Form.vue
@@ -6,8 +6,9 @@ @@ -6,8 +6,9 @@
6 class="NCC-dialog NCC-dialog_center baseInspectionReportForm" 6 class="NCC-dialog NCC-dialog_center baseInspectionReportForm"
7 lock-scroll 7 lock-scroll
8 width="50%" 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 <el-form 12 <el-form
12 ref="elForm" 13 ref="elForm"
13 :model="dataForm" 14 :model="dataForm"
@@ -30,14 +31,14 @@ @@ -30,14 +31,14 @@
30 </el-form-item> 31 </el-form-item>
31 </el-col> 32 </el-col>
32 <el-col :span="23"> 33 <el-col :span="23">
33 - <el-form-item label="系统名称" prop="platformName"> 34 + <el-form-item label="应用名称" prop="platformName">
34 <el-select 35 <el-select
35 ref="select" 36 ref="select"
36 v-model="dataForm.platformName" 37 v-model="dataForm.platformName"
37 filterable 38 filterable
38 remote 39 remote
39 reserve-keyword 40 reserve-keyword
40 - placeholder="请输入系统名称" 41 + placeholder="请输入应用名称"
41 @blur.native.capture="selectBlur" 42 @blur.native.capture="selectBlur"
42 @visible-change="visibleNameChange" 43 @visible-change="visibleNameChange"
43 @change="(val) => platformNameChange(val, 'change')" 44 @change="(val) => platformNameChange(val, 'change')"
@@ -48,7 +49,7 @@ @@ -48,7 +49,7 @@
48 </el-form-item> 49 </el-form-item>
49 </el-col> 50 </el-col>
50 <el-col :span="23"> 51 <el-col :span="23">
51 - <el-form-item label="系统类型" prop="platformType"> 52 + <el-form-item label="应用类型" prop="platformType">
52 <el-radio-group v-model="dataForm.platformType" :disabled='isDisabledTypeByName || !!this.dataForm.id'> 53 <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> 54 <el-radio v-for="(item, index) in platformTypeOptions" :key="index" :label="item.Id">{{ item.FullName }}</el-radio>
54 </el-radio-group> 55 </el-radio-group>
@@ -86,11 +87,11 @@ @@ -86,11 +87,11 @@
86 <el-input v-model="dataForm.questionContent" placeholder="请输入" show-word-limit :style="{ width: '100%' }" type="textarea" :autosize="{ minRows: 4, maxRows: 4 }" /> 87 <el-input v-model="dataForm.questionContent" placeholder="请输入" show-word-limit :style="{ width: '100%' }" type="textarea" :autosize="{ minRows: 4, maxRows: 4 }" />
87 </el-form-item> 88 </el-form-item>
88 </el-col> 89 </el-col>
89 - <el-col :span="23"> 90 + <!-- <el-col :span="23">
90 <el-form-item label="链接" prop="link"> 91 <el-form-item label="链接" prop="link">
91 <el-input v-model="dataForm.link" placeholder="请输入链接" clearable :style="{ width: '100%' }"></el-input> 92 <el-input v-model="dataForm.link" placeholder="请输入链接" clearable :style="{ width: '100%' }"></el-input>
92 </el-form-item> 93 </el-form-item>
93 - </el-col> 94 + </el-col> -->
94 <el-col :span="23"> 95 <el-col :span="23">
95 <el-form-item label="关键词" prop="questionClass"> 96 <el-form-item label="关键词" prop="questionClass">
96 <el-input v-model="dataForm.questionClass" placeholder="请输入关键词" clearable :style="{ width: '100%' }"></el-input> 97 <el-input v-model="dataForm.questionClass" placeholder="请输入关键词" clearable :style="{ width: '100%' }"></el-input>
@@ -103,6 +104,48 @@ @@ -103,6 +104,48 @@
103 </el-col> 104 </el-col>
104 </el-form> 105 </el-form>
105 </el-row> 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 <span slot="footer" class="dialog-footer"> 149 <span slot="footer" class="dialog-footer">
107 <el-button @click="visible = false">取 消</el-button> 150 <el-button @click="visible = false">取 消</el-button>
108 <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail">确 定</el-button> 151 <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail">确 定</el-button>
@@ -183,8 +226,9 @@ export default { @@ -183,8 +226,9 @@ export default {
183 }, 226 },
184 platformNameChange(val, type) { 227 platformNameChange(val, type) {
185 let obj = this.nameOptions.find(v => type == 'blur' ? val == v.fullName : val == v.id); 228 let obj = this.nameOptions.find(v => type == 'blur' ? val == v.fullName : val == v.id);
  229 + if(!obj) return;
186 this.dataForm.platformName = obj ? obj.id : val; 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 this.dataForm.selfMediaPlatformType = obj ? obj.platform : ''; 232 this.dataForm.selfMediaPlatformType = obj ? obj.platform : '';
189 }, 233 },
190 visibleNameChange(val) { 234 visibleNameChange(val) {
@@ -228,9 +272,10 @@ export default { @@ -228,9 +272,10 @@ export default {
228 this.visible = true; 272 this.visible = true;
229 this.isDetail = isDetail || false; 273 this.isDetail = isDetail || false;
230 this.$nextTick(async () => { 274 this.$nextTick(async () => {
231 - this.$refs["elForm"].resetFields(); 275 + !isDetail && this.$refs["elForm"].resetFields();
232 if (this.dataForm.id) { 276 if (this.dataForm.id) {
233 let res = await getDetail(this.dataForm.id); 277 let res = await getDetail(this.dataForm.id);
  278 + if(!res.data) return;
234 this.dataForm = res.data; 279 this.dataForm = res.data;
235 if(this.questionTypeOptions.findIndex(v => v.fullName == this.dataForm.questionType) == -1) { 280 if(this.questionTypeOptions.findIndex(v => v.fullName == this.dataForm.questionType) == -1) {
236 this.dataForm.otherQuestionType = res.data.questionType; 281 this.dataForm.otherQuestionType = res.data.questionType;
src/views/baseInspectionReport/index.vue
@@ -30,7 +30,22 @@ @@ -30,7 +30,22 @@
30 </el-col> 30 </el-col>
31 <div class="NCC-common-search-box-right"> 31 <div class="NCC-common-search-box-right">
32 <el-button type="success" icon="el-icon-plus" @click="addOrUpdateHandle()" size="mini" >新增</el-button> 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 </div> 49 </div>
35 </el-form> 50 </el-form>
36 </el-row> 51 </el-row>
@@ -73,6 +88,7 @@ @@ -73,6 +88,7 @@
73 import infoMixin from "@/mixins/info"; 88 import infoMixin from "@/mixins/info";
74 import ExportBox from './ExportBox' 89 import ExportBox from './ExportBox'
75 import { getList, previewDataInterface } from '@/api/systemData/dataInterface' 90 import { getList, previewDataInterface } from '@/api/systemData/dataInterface'
  91 +import { message } from '@/utils/message';
76 export default { 92 export default {
77 mixins: [infoMixin], 93 mixins: [infoMixin],
78 components: { NCCForm, ExportBox }, 94 components: { NCCForm, ExportBox },
@@ -113,6 +129,7 @@ @@ -113,6 +129,7 @@
113 questionTypeOptions : [], 129 questionTypeOptions : [],
114 questionClassOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}], 130 questionClassOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
115 stageOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}], 131 stageOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
  132 + uploadHeaders: { Authorization: this.$store.getters.token },
116 } 133 }
117 }, 134 },
118 computed: { 135 computed: {
@@ -173,6 +190,53 @@ @@ -173,6 +190,53 @@
173 this.$refs.NCCForm.init(id, isDetail) 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 search() { 240 search() {
177 this.listQuery = { 241 this.listQuery = {
178 currentPage: 1, 242 currentPage: 1,
@@ -208,4 +272,8 @@ @@ -208,4 +272,8 @@
208 overflow-y: scroll; 272 overflow-y: scroll;
209 } 273 }
210 } 274 }
  275 +.uploadXlax {
  276 + display: inline-block;
  277 + margin: 0 8px;
  278 +}
211 </style> 279 </style>
212 \ No newline at end of file 280 \ No newline at end of file
src/views/baseListHazardousSamples/index.vue
1 <template> 1 <template>
2 <div class="item-box common-info-box"> 2 <div class="item-box common-info-box">
3 - <div class="item-title">有害清单</div> 3 + <div class="item-title">问题督导整改清单</div>
4 <div class="item-body"> 4 <div class="item-body">
5 <div class="NCC-common-layout"> 5 <div class="NCC-common-layout">
6 <div class="NCC-common-layout-center"> 6 <div class="NCC-common-layout-center">
@@ -83,7 +83,7 @@ @@ -83,7 +83,7 @@
83 <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> --> 83 <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> -->
84 <el-table-column prop="inputTime" label="录入时间" align="left" :formatter="ncc.tableDateFormat" show-overflow-tooltip/> 84 <el-table-column prop="inputTime" label="录入时间" align="left" :formatter="ncc.tableDateFormat" show-overflow-tooltip/>
85 <el-table-column label="运营主体" prop="companyStr" align="left" show-overflow-tooltip /> 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 <el-table-column label="来源" prop="source" align="left" show-overflow-tooltip /> 87 <el-table-column label="来源" prop="source" align="left" show-overflow-tooltip />
88 <el-table-column label="问题类型" prop="questionType" align="left" show-overflow-tooltip /> 88 <el-table-column label="问题类型" prop="questionType" align="left" show-overflow-tooltip />
89 <el-table-column label="问题内容" prop="questionContent" align="left" show-overflow-tooltip /> 89 <el-table-column label="问题内容" prop="questionContent" align="left" show-overflow-tooltip />
@@ -93,26 +93,20 @@ @@ -93,26 +93,20 @@
93 <!-- <el-table-column prop="creatorTime" label="创建时间" align="left" show-overflow-tooltip :formatter="ncc.tableDateFormat"/> --> 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/> --> 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"/> --> 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 <template slot-scope="scope"> 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 </template> 99 </template>
100 - </el-table-column> --> 100 + </el-table-column>
101 </NCC-table> 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 </div> 103 </div>
109 </div> 104 </div>
110 <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" /> 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 </div> 110 </div>
117 </div> 111 </div>
118 </div> 112 </div>
@@ -123,8 +117,10 @@ import { getDictionaryDataSelector } from &quot;@/api/systemData/dictionary&quot;; @@ -123,8 +117,10 @@ import { getDictionaryDataSelector } from &quot;@/api/systemData/dictionary&quot;;
123 import NCCForm from "./Form"; 117 import NCCForm from "./Form";
124 import ExportBox from "./ExportBox"; 118 import ExportBox from "./ExportBox";
125 import { previewDataInterface } from "@/api/systemData/dataInterface"; 119 import { previewDataInterface } from "@/api/systemData/dataInterface";
  120 +import HandForm from '@/views/baseCaseHandling/Form.vue' // 案件处理
  121 +import ReportForm from '@/views/baseInspectionReport/Form.vue' // 案件处理
126 export default { 122 export default {
127 - components: { NCCForm, ExportBox }, 123 + components: { NCCForm, ExportBox, HandForm, ReportForm },
128 data() { 124 data() {
129 return { 125 return {
130 showAll: false, 126 showAll: false,
@@ -171,6 +167,8 @@ export default { @@ -171,6 +167,8 @@ export default {
171 167
172 // 导出 168 // 导出
173 exportBtnLoading: false, 169 exportBtnLoading: false,
  170 + HandFormVisible: false,
  171 + ReportFormVisible: false,
174 }; 172 };
175 }, 173 },
176 computed: {}, 174 computed: {},
@@ -268,22 +266,25 @@ export default { @@ -268,22 +266,25 @@ export default {
268 .catch(() => {}); 266 .catch(() => {});
269 }, 267 },
270 addOrUpdateHandle(row, isDetail) { 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 break; 277 break;
276 - case '网信执法 ':  
277 - 278 + case "网信执法":
  279 + this.HandFormVisible = true;
  280 + this.$nextTick(() => {
  281 + this.$refs.HandForm.init(row.caseHandlingId, true);
  282 + });
278 break; 283 break;
279 284
280 default: 285 default:
281 break; 286 break;
282 } 287 }
283 - this.formVisible = true;  
284 - this.$nextTick(() => {  
285 - this.$refs.NCCForm.init(row.id, isDetail);  
286 - });  
287 }, 288 },
288 search() { 289 search() {
289 this.listQuery = { 290 this.listQuery = {
@@ -294,8 +295,8 @@ export default { @@ -294,8 +295,8 @@ export default {
294 }; 295 };
295 this.initData(); 296 this.initData();
296 }, 297 },
297 - refresh(isrRefresh) {  
298 - this.formVisible = false; 298 + taskRefresh(key ,isrRefresh) {
  299 + this[`${key}`] = false;
299 if (isrRefresh) this.reset(); 300 if (isrRefresh) this.reset();
300 }, 301 },
301 reset() { 302 reset() {
src/views/baseSpecialAction/Form.vue
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 :visible.sync="visible" 5 :visible.sync="visible"
6 class="NCC-dialog NCC-dialog_center" 6 class="NCC-dialog NCC-dialog_center"
7 lock-scroll 7 lock-scroll
8 - width="50%" 8 + width="60%"
9 v-loading="loading" 9 v-loading="loading"
10 > 10 >
11 <el-row :gutter="15" class="NCC-dialog-content"> 11 <el-row :gutter="15" class="NCC-dialog-content">
@@ -43,9 +43,8 @@ @@ -43,9 +43,8 @@
43 </el-col> 43 </el-col>
44 <el-col :span="23" v-if="ncc.hasFormP('content')"> 44 <el-col :span="23" v-if="ncc.hasFormP('content')">
45 <el-form-item label="内容" prop="content"> 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 </el-form-item> 48 </el-form-item>
50 </el-col> 49 </el-col>
51 <el-col :span="23" v-if="ncc.hasFormP('annex')"> 50 <el-col :span="23" v-if="ncc.hasFormP('annex')">
@@ -104,15 +103,16 @@ @@ -104,15 +103,16 @@
104 </el-form-item> 103 </el-form-item>
105 </el-col> 104 </el-col>
106 <el-col :span="23" v-if="ncc.hasFormP('deadline')"> 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 <el-date-picker 107 <el-date-picker
109 v-model="dataForm.deadline" 108 v-model="dataForm.deadline"
110 - type="date" 109 + type="datetime"
111 :disabled="editType == '已发布并部署'" 110 :disabled="editType == '已发布并部署'"
112 - placeholder="选择截止日期"> 111 + placeholder="选择截止时间">
113 </el-date-picker> 112 </el-date-picker>
114 </el-form-item> 113 </el-form-item>
115 </el-col> 114 </el-col>
  115 +
116 </el-form> 116 </el-form>
117 </el-row> 117 </el-row>
118 <span slot="footer" class="dialog-footer"> 118 <span slot="footer" class="dialog-footer">
@@ -288,6 +288,9 @@ export default { @@ -288,6 +288,9 @@ export default {
288 }); 288 });
289 }, 289 },
290 dataFormSubmit(type) { 290 dataFormSubmit(type) {
  291 + console.log(this.dataForm);
  292 + return
  293 +
291 this.validateForm(type, () => { 294 this.validateForm(type, () => {
292 let obj = { 295 let obj = {
293 ...this.dataForm, 296 ...this.dataForm,
src/views/baseSpecialAction/FormPage.vue
1 <template> 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 </div> 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 </template> 35 </template>
146 <script> 36 <script>
147 import request from "@/utils/request"; 37 import request from "@/utils/request";
148 import { getDictionaryDataSelector } from "@/api/systemData/dictionary"; 38 import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
149 import { previewDataInterface } from "@/api/systemData/dataInterface"; 39 import { previewDataInterface } from "@/api/systemData/dataInterface";
150 -import webDesignForm from './webDesign/Form.vue';  
151 -  
152 export default { 40 export default {
153 - components: { webDesignForm }, 41 + components: {},
154 props: [], 42 props: [],
155 data() { 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 return { 58 return {
157 loading: false, 59 loading: false,
158 visible: false, 60 visible: false,
159 isDetail: false, 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 dataForm: { 63 dataForm: {
  64 + id: "",
165 id: undefined, 65 id: undefined,
166 - specialActionType: undefined,  
167 title: undefined, 66 title: undefined,
168 content: undefined, 67 content: undefined,
169 - releaseTime: null, 68 + releaseTime: undefined,
170 annex: [], 69 annex: [],
171 communicationArea: [], 70 communicationArea: [],
  71 + communicationOut: [],
172 state: undefined, 72 state: undefined,
173 creatorUserId: undefined, 73 creatorUserId: undefined,
174 creatorTime: undefined, 74 creatorTime: undefined,
175 lastModifyUserId: undefined, 75 lastModifyUserId: undefined,
176 lastModifyTime: undefined, 76 lastModifyTime: undefined,
177 - isOpenRelease: false, 77 + deadline: undefined,
  78 + relationId: undefined,
  79 + communicationAreasList: [],
  80 + communicationOutsList: [],
178 }, 81 },
179 rules: { 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 watch: {}, 105 watch: {},
219 created() { 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 beforeDestroy() { 111 beforeDestroy() {
229 - // 移除窗口大小变化事件监听器  
230 - window.removeEventListener('resize', this.updateViewportHeight);  
231 }, 112 },
232 methods: { 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 this.visible = true; 126 this.visible = true;
280 this.isDetail = isDetail || false; 127 this.isDetail = isDetail || false;
  128 + this.editType = row ? row.state : '';
281 this.$nextTick(() => { 129 this.$nextTick(() => {
282 - this.$refs["elForm"].resetFields();  
283 - if (this.dataForm.id) { 130 + if(this.dataForm.id) {
  131 + this.loading = true;
284 request({ 132 request({
285 - url: "/Extend/BaseSpecialAction/" + this.dataForm.id,  
286 - method: "get", 133 + url: `/Extend/BaseSpecialAction/${this.dataForm.id} `,
  134 + method: "GET",
287 }).then((res) => { 135 }).then((res) => {
288 this.dataForm = res.data; 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 </script> 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 </style> 178 </style>
src/views/baseSpecialAction/index.vue
@@ -34,8 +34,11 @@ @@ -34,8 +34,11 @@
34 <div class="NCC-common-layout-main NCC-flex-main"> 34 <div class="NCC-common-layout-main NCC-flex-main">
35 <NCC-table v-loading="listLoading" :data="list"> 35 <NCC-table v-loading="listLoading" :data="list">
36 <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> --> 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 <el-table-column prop="creatorTime" label="发布时间" align="left" :formatter="ncc.tableDateFormat" show-overflow-tooltip/> 42 <el-table-column prop="creatorTime" label="发布时间" align="left" :formatter="ncc.tableDateFormat" show-overflow-tooltip/>
40 <el-table-column label="传达区域" prop="communicationArea" align="left" show-overflow-tooltip> 43 <el-table-column label="传达区域" prop="communicationArea" align="left" show-overflow-tooltip>
41 <template slot-scope="scope">{{ JSON.parse(scope.row.communicationArea) | dynamicText(communicationAreaOptions) }}</template> 44 <template slot-scope="scope">{{ JSON.parse(scope.row.communicationArea) | dynamicText(communicationAreaOptions) }}</template>
@@ -43,19 +46,21 @@ @@ -43,19 +46,21 @@
43 <el-table-column label="传达外协" prop="communicationOut" align="left" show-overflow-tooltip> 46 <el-table-column label="传达外协" prop="communicationOut" align="left" show-overflow-tooltip>
44 <template slot-scope="scope">{{ JSON.parse(scope.row.communicationOut) | dynamicText(communicationOutOptions) }}</template> 47 <template slot-scope="scope">{{ JSON.parse(scope.row.communicationOut) | dynamicText(communicationOutOptions) }}</template>
45 </el-table-column> 48 </el-table-column>
  49 + <!-- <el-table-column label="内容" prop="content" align="left" show-overflow-tooltip /> -->
46 <el-table-column prop="state" label="状态" align="left" show-overflow-tooltip width="100"> 50 <el-table-column prop="state" label="状态" align="left" show-overflow-tooltip width="100">
47 <template slot-scope="scope"> 51 <template slot-scope="scope">
48 <el-tag :type="stateColor[`${scope.row.state}`]">{{scope.row.state}}</el-tag> 52 <el-tag :type="stateColor[`${scope.row.state}`]">{{scope.row.state}}</el-tag>
49 </template> 53 </template>
50 </el-table-column> 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 <template slot-scope="scope"> 56 <template slot-scope="scope">
53 <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 <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 </template> 58 </template>
55 </el-table-column> 59 </el-table-column>
56 <!-- <el-table-column prop="creatorUserId" show-overflow-tooltip label="创建用户" align="left"/> --> 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 <template slot-scope="scope"> 62 <template slot-scope="scope">
  63 + <el-button type="text" @click="toFormDetail(scope.row)">行动详情</el-button>
59 <el-button type="text" @click="addOrUpdateHandle(scope.row)">修改</el-button> 64 <el-button type="text" @click="addOrUpdateHandle(scope.row)">修改</el-button>
60 <el-button type="text" @click="toDetail(scope.row)" v-if="scope.row.state == '已发布并部署' && isSHILevel">处理情况</el-button> 65 <el-button type="text" @click="toDetail(scope.row)" v-if="scope.row.state == '已发布并部署' && isSHILevel">处理情况</el-button>
61 </template> 66 </template>
@@ -67,6 +72,7 @@ @@ -67,6 +72,7 @@
67 <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" /> 72 <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" />
68 <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/> 73 <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
69 <InfoForm v-if="InfoFormVisible" ref="InfoForm" @refresh="InfoFormVisible = false"/> 74 <InfoForm v-if="InfoFormVisible" ref="InfoForm" @refresh="InfoFormVisible = false"/>
  75 + <FormPage v-if="FormPageVisible" ref="FormPage" @refresh="FormPageVisible = false"/>
70 </div> 76 </div>
71 </div> 77 </div>
72 </div> 78 </div>
@@ -76,8 +82,9 @@ import request from &quot;@/utils/request&quot;; @@ -76,8 +82,9 @@ import request from &quot;@/utils/request&quot;;
76 import NCCForm from "./Form"; 82 import NCCForm from "./Form";
77 import ExportBox from "./ExportBox"; 83 import ExportBox from "./ExportBox";
78 import InfoForm from "./infoForm.vue"; 84 import InfoForm from "./infoForm.vue";
  85 +import FormPage from "./FormPage.vue";
79 export default { 86 export default {
80 - components: { NCCForm, ExportBox, InfoForm }, 87 + components: { NCCForm, ExportBox, InfoForm, FormPage },
81 data() { 88 data() {
82 return { 89 return {
83 query: { 90 query: {
@@ -96,6 +103,7 @@ export default { @@ -96,6 +103,7 @@ export default {
96 formVisible: false, 103 formVisible: false,
97 exportBoxVisible: false, 104 exportBoxVisible: false,
98 InfoFormVisible: false, 105 InfoFormVisible: false,
  106 + FormPageVisible: false,
99 communicationAreaOptions: [], 107 communicationAreaOptions: [],
100 communicationOutOptions: [], 108 communicationOutOptions: [],
101 stateColor: { 109 stateColor: {
@@ -169,6 +177,12 @@ export default { @@ -169,6 +177,12 @@ export default {
169 this.$refs.InfoForm.init(row); 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 exportData() { 186 exportData() {
173 this.exportBoxVisible = true; 187 this.exportBoxVisible = true;
174 this.$nextTick(() => { 188 this.$nextTick(() => {
@@ -223,4 +237,15 @@ export default { @@ -223,4 +237,15 @@ export default {
223 overflow-y: scroll; 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 </style> 251 </style>
src/views/baseSpecialAction/infoForm.vue
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 <div>{{ form.title }}</div> 15 <div>{{ form.title }}</div>
16 </el-col> 16 </el-col>
17 <el-col :span="10" class="form-item"> 17 <el-col :span="10" class="form-item">
18 - <div class="label w-100">截止日期:</div> 18 + <div class="label w-100">截止时间:</div>
19 <div>{{ ncc.dateFormat(form.deadline) }}</div> 19 <div>{{ ncc.dateFormat(form.deadline) }}</div>
20 </el-col> 20 </el-col>
21 <el-col :span="2" class="form-item"> 21 <el-col :span="2" class="form-item">
src/views/baseSpecialhandle/index.vue
@@ -27,27 +27,30 @@ @@ -27,27 +27,30 @@
27 </el-col> 27 </el-col>
28 </el-form> 28 </el-form>
29 <div class="NCC-common-search-box-right"> 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 </div> 32 </div>
32 </el-row> 33 </el-row>
33 <div class="NCC-common-layout-main NCC-flex-main"> 34 <div class="NCC-common-layout-main NCC-flex-main">
34 <NCC-table v-loading="listLoading" :data="list"> 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 <el-table-column prop="title" label="标题" align="left" show-overflow-tooltip /> 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 <el-table-column prop="state" label="状态" align="left" show-overflow-tooltip > 39 <el-table-column prop="state" label="状态" align="left" show-overflow-tooltip >
38 <template slot-scope="scope"> 40 <template slot-scope="scope">
39 <el-tag :type="scope.row.state == '已填写' ? 'success' : 'warning'">{{ scope.row.state }}</el-tag> 41 <el-tag :type="scope.row.state == '已填写' ? 'success' : 'warning'">{{ scope.row.state }}</el-tag>
40 </template> 42 </template>
41 </el-table-column> 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 <template slot-scope="scope"> 45 <template slot-scope="scope">
44 <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> 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 </template> 47 </template>
46 </el-table-column> 48 </el-table-column>
47 - <el-table-column label="操作" fixed="right" width="130"> 49 + <el-table-column label="操作" fixed="right" width="200">
48 <template slot-scope="scope"> 50 <template slot-scope="scope">
  51 + <el-button type="text" @click="toDetail(scope.row)">行动详情</el-button>
49 <el-button type="text" @click="toFillForm(scope.row)" :disabled="ncc.timeDeadLine(scope.row.deadline) == 'danger' && scope.row.state == '已填写'">{{scope.row.state == '已填写' ? '修改' : '处理'}}</el-button> 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 </template> 54 </template>
52 </el-table-column> 55 </el-table-column>
53 </NCC-table> 56 </NCC-table>
@@ -58,6 +61,7 @@ @@ -58,6 +61,7 @@
58 </div> 61 </div>
59 </div> 62 </div>
60 <NCCForm v-if="dialogVisible" ref="NCCForm" @refreshDataList="refresh" /> 63 <NCCForm v-if="dialogVisible" ref="NCCForm" @refreshDataList="refresh" />
  64 + <FormPage v-if="FormPageVisible" ref="FormPage" @refresh="FormPageVisible = false"/>
61 <!-- <el-dialog title="专项行动处理" :visible.sync="dialogVisible" fullscreen :modal="false"> 65 <!-- <el-dialog title="专项行动处理" :visible.sync="dialogVisible" fullscreen :modal="false">
62 <iframe 66 <iframe
63 :src="nestedPageUrl" 67 :src="nestedPageUrl"
@@ -72,8 +76,10 @@ @@ -72,8 +76,10 @@
72 <script> 76 <script>
73 import NCCForm from '@/views/baseSpecialAction/dynamicModel/list/Form' 77 import NCCForm from '@/views/baseSpecialAction/dynamicModel/list/Form'
74 import request from "@/utils/request"; 78 import request from "@/utils/request";
  79 +import FormPage from "@/views/baseSpecialAction/FormPage.vue";
  80 +
75 export default { 81 export default {
76 - components: { NCCForm }, 82 + components: { NCCForm, FormPage },
77 data() { 83 data() {
78 return { 84 return {
79 query: { 85 query: {
@@ -95,6 +101,7 @@ export default { @@ -95,6 +101,7 @@ export default {
95 nestedPageUrl: '', 101 nestedPageUrl: '',
96 viewportHeight: 0, 102 viewportHeight: 0,
97 taskId: '', 103 taskId: '',
  104 + FormPageVisible: false,
98 }; 105 };
99 }, 106 },
100 created() { 107 created() {
@@ -142,6 +149,13 @@ export default { @@ -142,6 +149,13 @@ export default {
142 this.listLoading = false; 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 toFillForm(row, isDetail) { 159 toFillForm(row, isDetail) {
146 this.dialogVisible = true; 160 this.dialogVisible = true;
147 var Itemid = row.itemId || '';//数据id,没有的话就是新增 ,有的话就是修改 161 var Itemid = row.itemId || '';//数据id,没有的话就是新增 ,有的话就是修改
src/views/baseSystemInfo/DetailForm.vue
@@ -180,6 +180,11 @@ @@ -180,6 +180,11 @@
180 <el-table-column show-overflow-tooltip prop="companyStr" label="运营主体"></el-table-column> 180 <el-table-column show-overflow-tooltip prop="companyStr" label="运营主体"></el-table-column>
181 <el-table-column show-overflow-tooltip label="问题类型" prop="questionType" align="left" /> 181 <el-table-column show-overflow-tooltip label="问题类型" prop="questionType" align="left" />
182 <el-table-column show-overflow-tooltip prop="questionClass" label="关键词"></el-table-column> 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 </el-table> 188 </el-table>
184 </el-tab-pane> 189 </el-tab-pane>
185 <el-tab-pane label="网信执法记录" name="4"> 190 <el-tab-pane label="网信执法记录" name="4">
@@ -196,6 +201,11 @@ @@ -196,6 +201,11 @@
196 <el-tag v-if="scope.row.state" :type="ncc.getStateTagType(scope.row.state, stateOptions)">{{ scope.row.state | dynamicTextUP(stateOptions) }}</el-tag> 201 <el-tag v-if="scope.row.state" :type="ncc.getStateTagType(scope.row.state, stateOptions)">{{ scope.row.state | dynamicTextUP(stateOptions) }}</el-tag>
197 </template> 202 </template>
198 </el-table-column> 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 </el-table> 209 </el-table>
200 </el-tab-pane> 210 </el-tab-pane>
201 <el-tab-pane label="数据日志" name="5"> 211 <el-tab-pane label="数据日志" name="5">
@@ -229,6 +239,9 @@ @@ -229,6 +239,9 @@
229 </el-tab-pane> 239 </el-tab-pane>
230 </el-tabs> 240 </el-tabs>
231 </el-row> 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 <span slot="footer" class="dialog-footer"> 245 <span slot="footer" class="dialog-footer">
233 <el-button @click="visible = false">取 消</el-button> 246 <el-button @click="visible = false">取 消</el-button>
234 </span> 247 </span>
@@ -238,8 +251,10 @@ @@ -238,8 +251,10 @@
238 import request from "@/utils/request"; 251 import request from "@/utils/request";
239 import { getSystemDetail, getUpdataRecord } from "@/api/baseData/info"; 252 import { getSystemDetail, getUpdataRecord } from "@/api/baseData/info";
240 import { getCompanyInfoById } from "@/api/baseData/company"; 253 import { getCompanyInfoById } from "@/api/baseData/company";
  254 +import HandForm from '@/views/baseCaseHandling/Form.vue' // 案件处理
  255 +import ReportForm from '@/views/baseInspectionReport/Form.vue' // 案件处理
241 export default { 256 export default {
242 - components: {}, 257 + components: {HandForm, ReportForm},
243 props: [], 258 props: [],
244 data() { 259 data() {
245 return { 260 return {
@@ -282,6 +297,8 @@ export default { @@ -282,6 +297,8 @@ export default {
282 record_total: '', 297 record_total: '',
283 questionTypeOptions : [], 298 questionTypeOptions : [],
284 stateOptions: [], 299 stateOptions: [],
  300 + HandFormVisible: false,
  301 + ReportFormVisible: false,
285 }; 302 };
286 }, 303 },
287 computed: { 304 computed: {
@@ -412,6 +429,31 @@ export default { @@ -412,6 +429,31 @@ export default {
412 this.queryList.pageIndex += 1; 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 goBack() { 458 goBack() {
417 this.$emit("refresh"); 459 this.$emit("refresh");
src/views/baseSystemInfo/index.vue
@@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
79 </el-form> 79 </el-form>
80 <div class="NCC-common-search-box-right"> 80 <div class="NCC-common-search-box-right">
81 <!-- <el-button type="success" icon="el-icon-upload2" size="mini">导入</el-button> --> 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 </div> 83 </div>
84 </el-row> 84 </el-row>
85 <div class="NCC-common-layout-main NCC-flex-main"> 85 <div class="NCC-common-layout-main NCC-flex-main">
@@ -126,13 +126,13 @@ @@ -126,13 +126,13 @@
126 <el-button size="mini" type="text" @click="toDetail(scope.row)">查看</el-button> 126 <el-button size="mini" type="text" @click="toDetail(scope.row)">查看</el-button>
127 <el-button size="mini" type="text" @click="toChangeArea(scope.row)" >归属地变更</el-button> 127 <el-button size="mini" type="text" @click="toChangeArea(scope.row)" >归属地变更</el-button>
128 <el-button size="mini" type="text" @click="toInspection(scope.row)" >上报</el-button> 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 </template> 130 </template>
131 </el-table-column> 131 </el-table-column>
132 </NCC-table> 132 </NCC-table>
133 <pagination 133 <pagination
134 :total="total" 134 :total="total"
135 - :page.sync="listQuery.pageIndex" 135 + :page.sync="listQuery.currentPage"
136 :limit.sync="listQuery.pageSize" 136 :limit.sync="listQuery.pageSize"
137 @pagination="initList" 137 @pagination="initList"
138 /> 138 />
@@ -222,7 +222,7 @@ export default { @@ -222,7 +222,7 @@ export default {
222 principalPhone: "", 222 principalPhone: "",
223 }, 223 },
224 listQuery: { 224 listQuery: {
225 - pageIndex: 1, 225 + currentPage: 1,
226 pageSize: 10, 226 pageSize: 10,
227 sort: "desc", 227 sort: "desc",
228 sidx: "", 228 sidx: "",
@@ -269,12 +269,19 @@ export default { @@ -269,12 +269,19 @@ export default {
269 ], 269 ],
270 }; 270 };
271 }, 271 },
  272 +
272 created() { 273 created() {
273 this.initSystemTypeList(); 274 this.initSystemTypeList();
274 this.initAreaTypeList(); 275 this.initAreaTypeList();
275 this.initList(); 276 this.initList();
276 }, 277 },
277 mounted() {}, 278 mounted() {},
  279 + computed: {
  280 + isSHILevel() {
  281 + // 判断角色是否为‘市级办公室’
  282 + return this.$store.state.user.islader;
  283 + },
  284 + },
278 watch: { 285 watch: {
279 $route: { 286 $route: {
280 handler: function (route) { 287 handler: function (route) {
@@ -304,7 +311,7 @@ export default { @@ -304,7 +311,7 @@ export default {
304 }, 311 },
305 search() { 312 search() {
306 this.listQuery = { 313 this.listQuery = {
307 - pageIndex: 1, 314 + currentPage: 1,
308 pageSize: 10, 315 pageSize: 10,
309 sort: "desc", 316 sort: "desc",
310 sidx: "", 317 sidx: "",
src/views/homePage/components/Menu.vue
@@ -85,7 +85,7 @@ export default { @@ -85,7 +85,7 @@ export default {
85 color: #fff; 85 color: #fff;
86 padding: 40px 0px !important; 86 padding: 40px 0px !important;
87 &.is-active { 87 &.is-active {
88 - color: #02efff; 88 + color: #409EFF;
89 background-color: #dfdada34; 89 background-color: #dfdada34;
90 } 90 }
91 span { 91 span {
src/views/overView/Overview.vue
@@ -119,7 +119,7 @@ @@ -119,7 +119,7 @@
119 <template slot-scope="scope"> 119 <template slot-scope="scope">
120 <el-button type="text" @click="checkDetail(scope.row, true)">详情</el-button> 120 <el-button type="text" @click="checkDetail(scope.row, true)">详情</el-button>
121 <el-button type="text" @click="checkDetail(scope.row)" v-if="isSHILevel">编辑</el-button> 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 </template> 123 </template>
124 </el-table-column> 124 </el-table-column>
125 </el-table> 125 </el-table>
@@ -334,7 +334,7 @@ export default { @@ -334,7 +334,7 @@ export default {
334 let openObject = this.getDialog(type); 334 let openObject = this.getDialog(type);
335 this[openObject.visible] = true; 335 this[openObject.visible] = true;
336 this.$nextTick(() => { 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 },