Commit 73755355953fb70bb66a63013f7a2e0df3c48328

Authored by monkeyhouyi
1 parent 65aeaaa1

优化

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