Commit 2201a66b45ad562972db28c54fc80adea036a2fc

Authored by monkeyhouyi
1 parent 9913f656

专项性行动-首页联动

src/views/Login.vue
... ... @@ -33,9 +33,10 @@
33 33 <!-- 忘记密码? -->
34 34 </div>
35 35 </div>
36   - <div class="login-button" @click="toHome">
  36 + <el-button class="login-button" @click="toHome" :loading="loading">登录</el-button>
  37 + <!-- <div class="login-button" @click="toHome">
37 38 {{ loading ? "登录中。。。" : "登录" }}
38   - </div>
  39 + </div> -->
39 40 </el-form>
40 41 </div>
41 42 </div>
... ... @@ -83,9 +84,11 @@ export default {
83 84 this.$store
84 85 .dispatch("Login", this.form)
85 86 .then(() => {
  87 + console.log(222);
86 88 this.$router.push({ path: "/homePage" });
87 89 })
88 90 .catch(() => {
  91 + this.loading = false;
89 92 this.$store.commit("SET_LOGIN_LOADING", false);
90 93 });
91 94 }
... ... @@ -173,12 +176,14 @@ export default {
173 176 .login-button {
174 177 width: 100%;
175 178 height: 46px;
176   - line-height: 46px;
177   - text-align: center;
  179 + // line-height: 46px;
  180 + // text-align: center;
178 181 background-image: url("@/assets/images/login-btn.png");
179 182 background-size: 100%;
180 183 background-repeat: no-repeat;
181   - cursor: pointer;
  184 + border-radius: 25px;
  185 + border: unset;
  186 + // cursor: pointer;
182 187 color: #5ed0fa;
183 188 font-size: 18px;
184 189 }
... ...
src/views/baseComapnyInfo/Form.vue
... ... @@ -44,6 +44,13 @@
44 44 </el-form-item>
45 45 </el-col>
46 46 <el-col :span="24">
  47 + <el-form-item label="所属区县" prop="areaId">
  48 + <el-radio-group v-model="dataForm.areaId" placeholder="请选择所属区县" style="line-height: 22px">
  49 + <el-radio v-for="v in areaOptions" :key="v.id" :label="v.id">{{ v.fullName }}</el-radio>
  50 + </el-radio-group>
  51 + </el-form-item>
  52 + </el-col>
  53 + <el-col :span="24">
47 54 <el-form-item label="其他信息" prop="otherInfo">
48 55 <NCC-Quill v-model="dataForm.otherInfo" placeholder="请输入内容...">
49 56 </NCC-Quill>
... ... @@ -61,14 +68,18 @@
61 68 import request from '@/utils/request'
62 69 import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
63 70 import { previewDataInterface } from '@/api/systemData/dataInterface'
  71 +import infoMixin from "@/mixins/info";
  72 +
64 73 export default {
65 74 components: {},
66 75 props: [],
  76 + mixins: [infoMixin],
67 77 data() {
68 78 return {
69 79 loading: false,
70 80 visible: false,
71 81 isDetail: false,
  82 + areaOptions: [],
72 83 dataForm: {
73 84 id: '',
74 85 id: undefined,
... ... @@ -79,6 +90,7 @@ export default {
79 90 contactInformation: undefined,
80 91 qualificationCertificate: [],
81 92 otherInfo: undefined,
  93 + areaId: undefined,
82 94 },
83 95 rules: {
84 96 companyName: [
... ... @@ -101,6 +113,7 @@ export default {
101 113 computed: {},
102 114 watch: {},
103 115 created() {
  116 + this.initAreaTypeList();
104 117 },
105 118 mounted() {
106 119 },
... ...
src/views/baseSpecialAction/Form.vue
... ... @@ -113,9 +113,7 @@
113 113 </el-row>
114 114 <span slot="footer" class="dialog-footer">
115 115 <el-button @click="visible = false">取 消</el-button>
116   - <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"
117   - >确 定</el-button
118   - >
  116 + <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail" :loading="btnLoading">确 定</el-button>
119 117 </span>
120 118 <el-dialog class="zxDialog" title="专项行动表单设计" :visible.sync="dialogVisible" fullscreen @close="handleClose" :modal="false">
121 119 <iframe
... ... @@ -156,7 +154,7 @@ export default {
156 154 lastModifyUserId: undefined,
157 155 lastModifyTime: undefined,
158 156 deadline: undefined,
159   - relationId: undefined
  157 + relationId: undefined,
160 158 },
161 159 rules: {
162 160 specialActionType: [
... ... @@ -179,6 +177,13 @@ export default {
179 177 message: "请输入截止日期",
180 178 trigger: "change",
181 179 }
  180 + ],
  181 + relationId: [
  182 + {
  183 + required: true,
  184 + message: "请选择关联表单",
  185 + trigger: "change",
  186 + }
182 187 ]
183 188 },
184 189 areaOptions: [],
... ... @@ -187,6 +192,7 @@ export default {
187 192 viewportHeight: 0,
188 193 nestedPageUrl:"http://8.130.38.56:8043/old/#/onlineDev/webDesign/indexNew",
189 194 dialogVisible: false,
  195 + btnLoading: false
190 196 };
191 197 },
192 198 computed: {},
... ... @@ -277,6 +283,7 @@ export default {
277 283 dataFormSubmit() {
278 284 this.$refs["elForm"].validate((valid) => {
279 285 if (valid) {
  286 + this.btnLoading = true;
280 287 if (!this.dataForm.id) {
281 288 let {title, content} = this.dataForm;
282 289 // 新增
... ... @@ -290,10 +297,11 @@ export default {
290 297 type: "success",
291 298 duration: 1000,
292 299 onClose: () => {
  300 + this.btnLoading = false;
293 301 (this.visible = false), this.$emit("refresh", true);
294 302 },
295 303 });
296   - });
  304 + }).catch(() => this.btnLoading = false);
297 305 } else {
298 306 // 发布任务
299 307 request({
... ... @@ -306,11 +314,12 @@ export default {
306 314 type: "success",
307 315 duration: 1000,
308 316 onClose: () => {
  317 + this.btnLoading = false;
309 318 this.visible = false;
310 319 this.$emit("refresh", true);
311 320 },
312 321 });
313   - });
  322 + }).catch(() => this.btnLoading = false);
314 323 }
315 324 }
316 325 });
... ...
src/views/baseSpecialhandle/index.vue
... ... @@ -149,7 +149,6 @@ export default {
149 149 params:null
150 150 }).then(res => {
151 151 formData = res.data.formData;
152   - console.log(res, formData, modelId, Itemid, isPreview, useFormPermission);
153 152 this.$refs.NCCForm.init(formData, modelId, Itemid, isPreview, useFormPermission, taskId)
154 153 });
155 154  
... ...
src/views/baseSystemInfo/HandleInspectForm.vue 0 → 100644
  1 +<template>
  2 + <!-- 归属地变更申请结果处理 -->
  3 + <el-dialog
  4 + title="归属地变更申请结果处理"
  5 + :close-on-click-modal="false"
  6 + :visible.sync="visible"
  7 + class="NCC-dialog NCC-dialog_center"
  8 + lock-scroll
  9 + width="70%"
  10 + >
  11 + <el-form
  12 + :model="dataForm"
  13 + :rules="rules"
  14 + ref="elForm"
  15 + size="small"
  16 + label-width="100px"
  17 + v-loading="loading"
  18 + >
  19 + <!-- <el-form-item label="市属" prop="city">
  20 + <el-input
  21 + v-model="dataForm.city"
  22 + placeholder="请输入市属"
  23 + maxlength="20"
  24 + ></el-input>
  25 + </el-form-item> -->
  26 + <el-form-item label="转入归属地" prop="toChangeIntoId">
  27 + <el-radio-group
  28 + v-model="dataForm.toChangeIntoId"
  29 + placeholder="请选择所属区县"
  30 + style="line-height: 22px"
  31 + >
  32 + <el-radio v-for="v in areaOptions" :key="v.id" :label="v.id">{{ v.fullName }}</el-radio>
  33 + </el-radio-group>
  34 + </el-form-item>
  35 + <el-form-item label="内容描述" prop="applnycontent">
  36 + <el-input
  37 + type="textarea"
  38 + v-model="dataForm.applnycontent"
  39 + placeholder="请输入内容描述"
  40 + maxlength="300"
  41 + ></el-input>
  42 + </el-form-item>
  43 + <el-form-item label="处理意见" prop="processingresults">
  44 + <el-radio-group v-model="dataForm.processingresults">
  45 + <el-radio label="同意">同意</el-radio>
  46 + <el-radio label="不同意">不同意</el-radio>
  47 + </el-radio-group>
  48 + </el-form-item>
  49 + <el-form-item label="处理意见" prop="opinion">
  50 + <el-input
  51 + type="textarea"
  52 + v-model="dataForm.opinion"
  53 + placeholder="请输入处理意见"
  54 + maxlength="300"
  55 + ></el-input>
  56 + </el-form-item>
  57 + </el-form>
  58 + <span slot="footer" class="dialog-footer">
  59 + <el-button @click="visible = false">取 消</el-button>
  60 + <el-button type="primary" @click="dataFormSubmit" :loading="btnLoading">确 定</el-button>
  61 + </span>
  62 + </el-dialog>
  63 + </template>
  64 + <script>
  65 + import request from "@/utils/request";
  66 + export default {
  67 + components: {},
  68 + props: [],
  69 + data() {
  70 + return {
  71 + loading: false,
  72 + visible: false,
  73 + isDetail: false,
  74 + dataForm: {
  75 + id: "",
  76 + applnycontent: '',
  77 + toChangeIntoId: '',
  78 + processingresults: '',
  79 + opinion: '',
  80 + },
  81 + rules: {
  82 + areaId: [
  83 + { required: true, message: '请选择转入归属地', trigger: 'change' },
  84 + ],
  85 + processingresults: [
  86 + { required: true, message: '请选择处理意见', trigger: 'change' },
  87 + ],
  88 + },
  89 + areaOptions: [],
  90 + btnLoading: false,
  91 + };
  92 + },
  93 + computed: {},
  94 + watch: {},
  95 + created() {
  96 + this.initAreaTypeList();
  97 + },
  98 + mounted() {},
  99 + methods: {
  100 + async initAreaTypeList() {
  101 + let list = this.$store.state.meta.area;
  102 + !list && (list = await this.$store.dispatch('getTypeListByCode', 'area'));
  103 + this.areaOptions = list;
  104 + },
  105 +
  106 + goBack() {
  107 + this.$emit("refresh");
  108 + },
  109 + init(id, isDetail) {
  110 + this.dataForm.id = id || '';
  111 + this.visible = true;
  112 + this.isDetail = isDetail || false;
  113 + this.$nextTick(async () => {
  114 + this.$refs["elForm"].resetFields();
  115 + if(!this.dataForm.id) return
  116 + this.loading = true;
  117 + request({
  118 + url: `/Extend/BaseChangeTerritory/${this.dataForm.id}`,
  119 + method: "GET",
  120 + }).then((res) => {
  121 + this.dataForm.toChangeIntoId = res.data.toChangeIntoId;
  122 + this.dataForm.id = res.data.id;
  123 + this.dataForm.applnycontent = res.data.applnycontent;
  124 + this.loading = false;
  125 + })
  126 + });
  127 + },
  128 + dataFormSubmit() {
  129 + this.$refs["elForm"].validate(async (valid) => {
  130 + if (valid) {
  131 + this.btnLoading = true;
  132 + request({
  133 + url: `/Extend/BaseChangeTerritory/DisposeOf`,
  134 + method: "POST",
  135 + data: this.dataForm,
  136 + }).then((res) => {
  137 + this.btnLoading = false;
  138 + this.visible = false;
  139 + this.$message({
  140 + message: res.msg,
  141 + type: 'success'
  142 + });
  143 + this.$emit("refresh", true);
  144 + }).catch(() => {
  145 + this.btnLoading = false;
  146 + });
  147 +
  148 + }
  149 + });
  150 + },
  151 + },
  152 + };
  153 + </script>
  154 +
0 155 \ No newline at end of file
... ...
src/views/baseSystemInfo/index.vue
... ... @@ -208,7 +208,7 @@
208 208  
209 209 <span slot="footer" class="dialog-footer">
210 210 <el-button @click="areaChangeVisible = false">取 消</el-button>
211   - <el-button type="primary" @click="areaSubmit">确 定</el-button>
  211 + <el-button type="primary" @click="areaSubmit" :loading="btnLoading">确 定</el-button>
212 212 </span>
213 213 </el-dialog>
214 214 <InspectionForm
... ... @@ -274,7 +274,8 @@ export default {
274 274  
275 275 // 上报
276 276 InspectionFormVisible: false,
277   - ChangeRecordVisible: false
  277 + ChangeRecordVisible: false,
  278 + btnLoading: false,
278 279 };
279 280 },
280 281 created() {
... ... @@ -375,12 +376,18 @@ export default {
375 376 },
376 377 areaSubmit() {
377 378 if (this.activeAreaId == this.areaForm.areaId) return;
  379 + this.btnLoading = true;
378 380 applnyChageArea({
379 381 id: this.activeSystemId,
380 382 toChangeIntoId: this.areaForm.areaId,
381 383 applnycontent: this.areaForm.applnycontent,
382 384 }).then((res) => {
  385 + this.btnLoading = false;
383 386 this.areaChangeVisible = false;
  387 + this.$message({
  388 + message: res.msg,
  389 + type: 'success'
  390 + });
384 391 this.initList();
385 392 });
386 393 },
... ...
src/views/overView/Overview.vue
... ... @@ -15,40 +15,15 @@
15 15 <div class="item-body">
16 16 <template>
17 17 <el-table :data="taskList" style="width: 100%" stripe v-loading="taskLoading">
18   - <el-table-column type="index" width="50"> </el-table-column>
19   - <el-table-column
20   - prop="teskName"
21   - label="任务名称"
22   - show-overflow-tooltip
23   - >
24   - </el-table-column>
25   - <el-table-column
26   - prop="teskCode"
27   - label="任务编号"
28   - show-overflow-tooltip
29   - >
30   - </el-table-column>
31   - <el-table-column
32   - prop="teskStatus"
33   - label="状态"
34   - show-overflow-tooltip
35   - >
36   - </el-table-column>
37   - <el-table-column
38   - prop="teskUser"
39   - label="分配者"
40   - show-overflow-tooltip
41   - >
42   - </el-table-column>
43   - <el-table-column
44   - prop="teskTime"
45   - label="任务期限"
46   - show-overflow-tooltip
47   - >
48   - </el-table-column>
49   - <el-table-column label="操作">
50   - <template>
51   - <el-button type="primary" size="small">处理</el-button>
  18 + <el-table-column type="index" width="40"> </el-table-column>
  19 + <el-table-column prop="taskTitle" label="任务名称" show-overflow-tooltip/>
  20 + <el-table-column prop="taskType" label="任务类型" show-overflow-tooltip width="100"/>
  21 + <el-table-column prop="taskState" label="状态" show-overflow-tooltip width="80"/>
  22 + <el-table-column prop="taskContent" label="任务内容" show-overflow-tooltip />
  23 + <el-table-column prop="deadLine" label="任务期限" show-overflow-tooltip :formatter="ncc.tableDateFormat" width="130"/>
  24 + <el-table-column label="操作" width="100">
  25 + <template slot-scope="scope">
  26 + <el-button type="primary" size="small" @click="handleTask(scope.row)">处理</el-button>
52 27 </template>
53 28 </el-table-column>
54 29 </el-table>
... ... @@ -145,15 +120,20 @@
145 120 </el-col>
146 121 </el-row>
147 122 <MsgForm v-if="MsgFormVisible" ref="MsgForm" @refreshDataList="msgRefresh"/>
  123 + <HandleInspectForm v-if="HandleInspectFormVisible" ref="HandleInspectForm" @refresh="(val) => {taskRefresh('HandleInspectFormVisible', val)}"/>
  124 + <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="(val) => {taskRefresh('formVisible', val)}" />
148 125 </div>
149 126 </template>
150 127  
151 128 <script>
152 129 import request from "@/utils/request";
153 130 import MsgForm from "./msgForm.vue"
  131 +import HandleInspectForm from "@/views/baseSystemInfo/HandleInspectForm.vue"
  132 +import NCCForm from '@/views/baseSpecialAction/dynamicModel/list/Form'
  133 +
154 134 export default {
155 135 name: "Overview",
156   - components: { MsgForm },
  136 + components: { MsgForm, HandleInspectForm, NCCForm },
157 137 data() {
158 138 return {
159 139 todoTableData: [],
... ... @@ -182,7 +162,8 @@ export default {
182 162 },
183 163 taskList: [],
184 164 taskTotal: 0,
185   - TaskFormVisible: false
  165 + HandleInspectFormVisible: false,
  166 + formVisible: false
186 167 };
187 168 },
188 169 created() {
... ... @@ -281,6 +262,43 @@ export default {
281 262 };
282 263 this.getAllTaskList();
283 264 },
  265 + async handleTask(row) {
  266 + if(row.taskType == '归属地变更') {
  267 + this.HandleInspectFormVisible = true;
  268 + this.$nextTick(() => {
  269 + this.$refs.HandleInspectForm.init(row.taskCorrelationId, true);
  270 + })
  271 + } else if(row.taskType == '专项行动') {
  272 + this.formVisible = true;
  273 + let data = await this.getBaseSpecialActionInfo('588008032122701061');
  274 + // let row = await this.getBaseSpecialActionInfo(row.taskCorrelationId);
  275 + var Itemid = data.itemId || '';//数据id,没有的话就是新增 ,有的话就是修改
  276 + var modelId = data.formId;//关联的表单id
  277 + var taskId = data.id; // 当前专项行动id
  278 + var isPreview = false;//固定死,值不变
  279 + var useFormPermission = false;//固定死,值不变
  280 + var formData = [];
  281 + request({
  282 + url: '/visualdev/OnlineDev/'+modelId+'/Config',
  283 + method: "GET",
  284 + params:null
  285 + }).then(res => {
  286 + formData = res.data.formData;
  287 + this.$refs.NCCForm.init(formData, modelId, Itemid, isPreview, useFormPermission, taskId)
  288 + });
  289 + }
  290 + },
  291 + async getBaseSpecialActionInfo(id) {
  292 + let {data} = await request({
  293 + url: `/Extend/BaseSpecialActionInfo/${id}`,
  294 + method: "GET",
  295 + })
  296 + return data;
  297 + },
  298 + taskRefresh(key, val) {
  299 + this[key] = false;
  300 + val && this.getAllTaskList();
  301 + }
284 302 },
285 303 };
286 304 </script>
... ...
vue.config.js
... ... @@ -17,8 +17,8 @@ module.exports = defineConfig({
17 17 proxy: {
18 18 '/api': {
19 19 // 跨域请求的地址
20   - //target: 'http://8.130.38.56:8043/api',
21   - target: 'http://localhost:2015/api',
  20 + target: 'http://8.130.38.56:8043/api',
  21 + // target: 'http://localhost:2015/api',
22 22 changeOrigin: true, // 是否允许跨域请求,在本地会创建一个虚拟服务端,发送接收请求数据,这样服务端和服务端进行数据的交互就不会有跨域问题
23 23 // 路径重写,替换请求地址
24 24 pathRewrite: {
... ... @@ -26,10 +26,10 @@ module.exports = defineConfig({
26 26 }
27 27 }
28 28 },
29   - // client: {
30   - // webSocketURL: "http://localhost:8080"
31   - // // overlay: false
32   - // },
  29 + client: {
  30 + // webSocketURL: "http://localhost:8080"
  31 + overlay: false
  32 + },
33 33 },
34 34 configureWebpack: {
35 35 name: '属地',
... ...