3eafb84c by 蔡俊立
2 parents 2863feb9 f7048649
...@@ -5,4 +5,4 @@ NODE_ENV=development ...@@ -5,4 +5,4 @@ NODE_ENV=development
5 VUE_APP_BASE_API = '/bdcdj' 5 VUE_APP_BASE_API = '/bdcdj'
6 6
7 # 开发环境 7 # 开发环境
8 VUE_APP_API_BASE_URL = 'http://192.168.2.88:8018' 8 VUE_APP_API_BASE_URL = 'http://192.168.2.95:8018'
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
5 <div :style="{'text-align':titleStyle}"><b >{{title}}</b></div> 5 <div :style="{'text-align':titleStyle}"><b >{{title}}</b></div>
6 <i class="el-icon-close" @click="onCancel" ></i> 6 <i class="el-icon-close" @click="onCancel" ></i>
7 <div class="ls-mask-content"> 7 <div class="ls-mask-content">
8 <component :is="editItem" ref='childRef' @loading='loadingFn' /> 8 <component :is="editItem" ref='childRef' @loading='loadingFn' :formData='formData' />
9 </div> 9 </div>
10 <div class="ls-mask-footer"> 10 <div class="ls-mask-footer">
11 <el-button type="primary" @click="onConfirm">{{confirmText}}</el-button> 11 <el-button type="primary" @click="onConfirm">{{confirmText}}</el-button>
...@@ -25,10 +25,13 @@ ...@@ -25,10 +25,13 @@
25 confirmText: '确认', 25 confirmText: '确认',
26 isSync: false, 26 isSync: false,
27 isShow: false, 27 isShow: false,
28 cancel: function () {},
29 confirm: function () {},
28 editItem:"", 30 editItem:"",
29 titleStyle:'', 31 titleStyle:'',
30 width:"75%", 32 width:"75%",
31 height:"500px", 33 height:"500px",
34 formData:"",//父组件传递的参数 负责传给子组件
32 } 35 }
33 }, 36 },
34 props:{ 37 props:{
...@@ -42,10 +45,17 @@ ...@@ -42,10 +45,17 @@
42 methods: { 45 methods: {
43 onCancel () { 46 onCancel () {
44 this.isShow = false 47 this.isShow = false
48 this.cancel()
45 }, 49 },
46 onConfirm () { 50 onConfirm () {
47 this.loading = true 51 this.loading = true
48 this.$refs.childRef.childFn() 52 let isOk = this.$refs.childRef.childFn() //子组件方法 必须命名一致
53 if(isOk || isOk==undefined){ //如果子组件没有 return false 就代表子组件方法一切正常
54 this.isShow = false
55 this.confirm()
56 }else{ //否则
57 console.log('弹窗不关闭')
58 }
49 }, 59 },
50 loadingFn(e){ //加载状态 60 loadingFn(e){ //加载状态
51 this.loading = e 61 this.loading = e
......
1 弹窗封装
2 1.在main.js中引入 import Popup from './components/tanchuang/index'
3 Vue.prototype.$popup = Popup.install
4 2.用法以及参数:
5 this.$popup({
6 title: '提示', // 弹窗标题
7 titleStyle:"", //标题存在的位置 center left
8 width:"", //弹窗的宽度
9 height:"", //弹窗的高度
10 editItem: 'ywbl/dbx/aa', // 子组件的路径 相当于你平时img取的路径
11 formData:this.formData, //父组件传给子组件的参数
12 confirmText:"" // 确认按钮的文字
13 cancelText:"" //取消按钮的文字
14 cancel: function () {}, //取消事件的回调
15 confirm: function () {}, //确认事件的回调
16 })
17 3.子组件的方法名字必须统一为 childFn()
18 4.子组件切记props接收 父组件传参formData
19 以及在使用结束后传loading状态给父组件
20
21 5.后续有修改请添加在此处文档说明作用
...\ No newline at end of file ...\ No newline at end of file
1 <template> 1 <template>
2 <div class="dashboard-container"> 2 <div class="dashboard-container">
3 11111111 3 <img src="./home.png" alt="">
4 </div> 4 </div>
5 </template> 5 </template>
6 6
...@@ -28,8 +28,13 @@ export default { ...@@ -28,8 +28,13 @@ export default {
28 } 28 }
29 } 29 }
30 </script> 30 </script>
31 <style > 31 <style scoped lang="scss">
32 .dashboard-container { 32 .dashboard-container {
33 height: 100%; 33 height: 100%;
34
35 img {
36 width: 100%;
37 height: 100%;
38 }
34 } 39 }
35 </style> 40 </style>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -100,6 +100,15 @@ class data extends filter { ...@@ -100,6 +100,15 @@ class data extends filter {
100 sortable: 'custom', 100 sortable: 'custom',
101 prop: 'fromstepdate', 101 prop: 'fromstepdate',
102 width: '160' 102 width: '160'
103 },
104 {
105 label: '操作',
106 width: '80',
107 align: 'center',
108 fixed: 'right',
109 render: (h, scope) => {
110 return <el-button type="text" icon="el-icon-delete" onClick={() => { vm.del(scope.row) }}>删除</el-button>
111 }
103 } 112 }
104 ] 113 ]
105 } 114 }
......
...@@ -40,6 +40,7 @@ import { mapGetters } from "vuex"; ...@@ -40,6 +40,7 @@ import { mapGetters } from "vuex";
40 import clxxAddDialog from "./clxxAddDialog.vue"; 40 import clxxAddDialog from "./clxxAddDialog.vue";
41 import imagePreview from '@/views/components/imagePreview.vue' 41 import imagePreview from '@/views/components/imagePreview.vue'
42 import { clmlInit, move, save, clmlDelete } from "@/api/fqsq.js"; 42 import { clmlInit, move, save, clmlDelete } from "@/api/fqsq.js";
43 import { async } from "q";
43 export default { 44 export default {
44 components: { clxxAddDialog, imagePreview }, 45 components: { clxxAddDialog, imagePreview },
45 data () { 46 data () {
...@@ -96,7 +97,6 @@ export default { ...@@ -96,7 +97,6 @@ export default {
96 label: "是否必选", 97 label: "是否必选",
97 width: "50", 98 width: "50",
98 render: (h, scope) => { 99 render: (h, scope) => {
99 // 新增的材料,全部为系统默认可选
100 if (scope.row.sfxjcl === "1") { 100 if (scope.row.sfxjcl === "1") {
101 return ( 101 return (
102 <div> 102 <div>
...@@ -104,7 +104,6 @@ export default { ...@@ -104,7 +104,6 @@ export default {
104 </div> 104 </div>
105 ); 105 );
106 } 106 }
107 // 系统配置的材料
108 else { 107 else {
109 return ( 108 return (
110 <div> 109 <div>
...@@ -121,6 +120,7 @@ export default { ...@@ -121,6 +120,7 @@ export default {
121 { 120 {
122 prop: "sjlx", 121 prop: "sjlx",
123 label: "材料类型", 122 label: "材料类型",
123 width: "80",
124 render: (h, scope) => { 124 render: (h, scope) => {
125 return ( 125 return (
126 <div> 126 <div>
...@@ -132,10 +132,12 @@ export default { ...@@ -132,10 +132,12 @@ export default {
132 { 132 {
133 prop: "sjsl", 133 prop: "sjsl",
134 label: "份数", 134 label: "份数",
135 width: "50"
135 }, 136 },
136 { 137 {
137 prop: "smzt", 138 prop: "smzt",
138 label: "扫描状态", 139 label: "扫描状态",
140 width: "80",
139 render: (h, scope) => { 141 render: (h, scope) => {
140 if (scope.row.children.length > 0) { 142 if (scope.row.children.length > 0) {
141 return ( 143 return (
...@@ -155,6 +157,7 @@ export default { ...@@ -155,6 +157,7 @@ export default {
155 { 157 {
156 prop: "ys", 158 prop: "ys",
157 label: "扫描页数", 159 label: "扫描页数",
160 width: "50"
158 }, 161 },
159 { 162 {
160 label: "操作", 163 label: "操作",
...@@ -193,23 +196,38 @@ export default { ...@@ -193,23 +196,38 @@ export default {
193 imgList: [ 196 imgList: [
194 { 197 {
195 url: 'https://img2.baidu.com/it/u=2955521104,3257476296&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=1111' 198 url: 'https://img2.baidu.com/it/u=2955521104,3257476296&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=1111'
196 },
197 {
198 url: 'https://img1.baidu.com/it/u=2383300938,4241539174&fm=253&fmt=auto&app=138&f=JPEG?w=307&h=500'
199 } 199 }
200 ], 200 ]
201 }
201 } 202 }
202 };
203 }, 203 },
204 computed: { 204 computed: {
205 ...mapGetters(["dictData"]), 205 ...mapGetters(["dictData"]),
206 }, 206 },
207 mounted () { 207 created () {
208 if (this.$parent.index == 1) { 208 this.clmlInitList()
209 this.clmlmxInit();
210 }
211 }, 209 },
212 methods: { 210 methods: {
211 // 材料目录明细初始化
212 clmlInitList () {
213 return new Promise(resolve => {
214 this.unitData = this.$parent.unitData;
215 var formdata = new FormData();
216 formdata.append("bsmSldy", this.unitData[0].bsmSldy);
217 formdata.append("bsmSlsq", this.$parent.bsmSlsq);
218 clmlInit(formdata).then((res) => {
219 resolve(res.code)
220 if (res.result.result) {
221 this.tableData = res.result.result;
222 this.treeCheckId = this.tableData[0].bsmSj;
223 this.title = this.tableData[0].sjmc;
224 this.titleYs = 1;
225 this.titleNum = this.tableData[0].children.length;
226 }
227 console.log(this.tableData);
228 })
229 })
230 },
213 // 左侧菜单点击 231 // 左侧菜单点击
214 menuClick (item) { 232 menuClick (item) {
215 this.checkedId = item.id 233 this.checkedId = item.id
...@@ -223,42 +241,40 @@ export default { ...@@ -223,42 +241,40 @@ export default {
223 let obj = { 241 let obj = {
224 xh: row.xh, 242 xh: row.xh,
225 bsmSlsq: row.bsmSlsq, 243 bsmSlsq: row.bsmSlsq,
226 moveDirection: "up", 244 moveDirection: "UP",
227 }; 245 };
228 // 接口待调 246 // 接口待调
229 move(obj).then((res) => { 247 move(obj).then(async (res) => {
230 this.clmlmxInit(); 248 if (res.code == 200) {
231 }); 249 let res = await this.clmlInitList()
250 if (res == 200) this.$message({
251 message: '上移成功',
252 type: 'success'
253 })
254 } else {
255 this.$message.error(res.message);
256 }
257 })
232 }, 258 },
233 // 下移 259 // 下移
234 moveDown (index, row) { 260 moveDown (index, row) {
235 let obj = { 261 let obj = {
236 xh: row.xh, 262 xh: row.xh,
237 bsmSlsq: row.bsmSlsq, 263 bsmSlsq: row.bsmSlsq,
238 moveDirection: "down", 264 moveDirection: "DOWN",
239 }; 265 }
240 // 接口待调 266 // 接口待调
241 move(obj).then((res) => { 267 move(obj).then(async (res) => {
242 console.log("222222222", res); 268 if (res.code == 200) {
243 this.clmlmxInit(); 269 let res = await this.clmlInitList()
244 }); 270 if (res == 200) this.$message({
245 }, 271 message: '下移成功',
246 // 材料目录明细初始化 272 type: 'success'
247 clmlmxInit () { 273 })
248 this.id = this.$parent.$parent.$parent.id; 274 } else {
249 this.unitData = this.$parent.$parent.$parent.unitData; 275 this.$message.error(res.message);
250 var formdata = new FormData();
251 formdata.append("bsmSldy", this.unitData[0].bsmSldy);
252 formdata.append("bsmSlsq", this.id);
253 clmlInit(formdata).then((res) => {
254 if (res.result.result) {
255 this.tableData = res.result.result;
256 this.treeCheckId = this.tableData[0].bsmSj;
257 this.title = this.tableData[0].sjmc;
258 this.titleYs = 1;
259 this.titleNum = this.tableData[0].children.length;
260 } 276 }
261 }); 277 })
262 }, 278 },
263 // 新增弹窗保存 279 // 新增弹窗保存
264 addSave (data) { 280 addSave (data) {
...@@ -271,12 +287,16 @@ export default { ...@@ -271,12 +287,16 @@ export default {
271 let obj = { 287 let obj = {
272 bsmSlsq: this.id, 288 bsmSlsq: this.id,
273 xh: maxXh + 1, 289 xh: maxXh + 1,
274 isrequired: "0", 290 isrequired: "1",
275 sjmc: data.clmc, 291 sjmc: data.clmc,
292 sjsl: 0,
293 smzt: '',
294 ys: 0,
276 sjlx: data.cllx, 295 sjlx: data.cllx,
277 sfxjcl: "1", // 是否是新建材料 296 sfxjcl: "1", // 是否必选
278 }; 297 };
279 save(obj).then((res) => { 298 save(obj).then((res) => {
299 console.log(res);
280 if (res.code == 200) { 300 if (res.code == 200) {
281 this.$message({ 301 this.$message({
282 message: "新增成功", 302 message: "新增成功",
...@@ -398,10 +418,11 @@ export default { ...@@ -398,10 +418,11 @@ export default {
398 418
399 .menu-tree { 419 .menu-tree {
400 width: 20%; 420 width: 20%;
421 min-width: 160px;
401 height: 100%; 422 height: 100%;
402 margin-right: 30px; 423 margin-right: 10px;
403 border-right: 1px dotted #d9d9d9; 424 border-right: 1px dotted #d9d9d9;
404 padding: 0 24px; 425 padding: 0 15px;
405 426
406 .item { 427 .item {
407 height: 60px; 428 height: 60px;
...@@ -443,10 +464,9 @@ export default { ...@@ -443,10 +464,9 @@ export default {
443 } 464 }
444 465
445 .child { 466 .child {
446 height: 60px; 467 line-height: 36px;
447 line-height: 60px;
448 border-bottom: 1px solid #e8e8e8; 468 border-bottom: 1px solid #e8e8e8;
449 padding-left: 18px; 469 padding-left: 10px;
450 color: #6b6b6b; 470 color: #6b6b6b;
451 cursor: pointer; 471 cursor: pointer;
452 box-sizing: border-box; 472 box-sizing: border-box;
......
1 <template> 1 <template>
2 <dialogBox title="新建材料信息" width="40%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit" 2 <dialogBox title="新建材料信息" width="20%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit"
3 :isFullscreen="false"> 3 :isFullscreen="false">
4 <el-form :model="ruleForm" ref="ruleForm" label-width="120px"> 4 <el-form :model="ruleForm" ref="ruleForm" label-width="70px">
5 <el-row> 5 <el-row>
6 <el-col :span="24"> 6 <el-col :span="24">
7 <el-form-item label="材料类型"> 7 <el-form-item label="材料类型">
8 <el-input v-model="ruleForm.cllx"></el-input> 8 <el-select v-model="ruleForm.cllx" class="width100" placeholder="请选择">
9 <el-option v-for="item in dictData['A40']" :key="item.dcode" :label="item.dname" :value="item.dcode">
10 </el-option>
11 </el-select>
9 </el-form-item> 12 </el-form-item>
10 </el-col> 13 </el-col>
11 </el-row> 14 </el-row>
...@@ -21,7 +24,7 @@ ...@@ -21,7 +24,7 @@
21 </template> 24 </template>
22 25
23 <script> 26 <script>
24 27 import { mapGetters } from "vuex";
25 export default { 28 export default {
26 props: { 29 props: {
27 value: { type: Boolean, default: false }, 30 value: { type: Boolean, default: false },
...@@ -35,6 +38,9 @@ export default { ...@@ -35,6 +38,9 @@ export default {
35 }, 38 },
36 }; 39 };
37 }, 40 },
41 computed: {
42 ...mapGetters(["dictData"]),
43 },
38 watch: { 44 watch: {
39 value (val) { 45 value (val) {
40 this.myValue = val; 46 this.myValue = val;
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
28 </el-form> 28 </el-form>
29 </div> 29 </div>
30 <div class="from-clues-content"> 30 <div class="from-clues-content">
31 <lb-table border :column="tableData.columns" :data="tableData.data" :pagination="false"> 31 <lb-table border :column="tableData.columns" :heightNum="210" :data="tableData.data" :pagination="false">
32 </lb-table> 32 </lb-table>
33 </div> 33 </div>
34 </div> 34 </div>
...@@ -39,12 +39,12 @@ import { getCertificateList } from "@/api/fqsq.js"; ...@@ -39,12 +39,12 @@ import { getCertificateList } from "@/api/fqsq.js";
39 import { datas } from "./fzxxdata"; 39 import { datas } from "./fzxxdata";
40 export default { 40 export default {
41 mixins: [table], 41 mixins: [table],
42 components: { }, 42 components: {},
43 props: { 43 props: {
44 44
45 }, 45 },
46 46
47 data() { 47 data () {
48 return { 48 return {
49 ruleForm: { 49 ruleForm: {
50 ysxlh: '', 50 ysxlh: '',
...@@ -59,12 +59,10 @@ export default { ...@@ -59,12 +59,10 @@ export default {
59 }, 59 },
60 }; 60 };
61 }, 61 },
62 async created() {
63 },
64 methods: { 62 methods: {
65 // 列表渲染接口 63 // 列表渲染接口
66 fetchData () { 64 fetchData () {
67 this.ruleForm.bsmSldy = this.$parent.$parent.unitData[0].bsmSldy 65 this.ruleForm.bsmSldy = this.$parent.unitData[0].bsmSldy
68 getCertificateList(this.ruleForm).then(res => { 66 getCertificateList(this.ruleForm).then(res => {
69 if (res.code === 200) { 67 if (res.code === 200) {
70 this.tableData.data = res.result 68 this.tableData.data = res.result
...@@ -76,5 +74,4 @@ export default { ...@@ -76,5 +74,4 @@ export default {
76 </script> 74 </script>
77 <style scoped lang='scss'> 75 <style scoped lang='scss'>
78 @import "~@/styles/public.scss"; 76 @import "~@/styles/public.scss";
79
80 </style> 77 </style>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -60,6 +60,7 @@ ...@@ -60,6 +60,7 @@
60 </div> 60 </div>
61 </el-dialog> 61 </el-dialog>
62 <zsylDialog ref="zsylDialog" v-model="zsylFlag" :value='zsylFlag' /> 62 <zsylDialog ref="zsylDialog" v-model="zsylFlag" :value='zsylFlag' />
63 <el-empty description="暂无数据" v-if="tableData.length==0"></el-empty>
63 </div> 64 </div>
64 </template> 65 </template>
65 <script> 66 <script>
...@@ -69,10 +70,8 @@ import { getBdcqzList, invalidCertificate } from "@/api/fqsq.js"; ...@@ -69,10 +70,8 @@ import { getBdcqzList, invalidCertificate } from "@/api/fqsq.js";
69 export default { 70 export default {
70 components: { zsylDialog }, 71 components: { zsylDialog },
71 props: { 72 props: {
72
73 }, 73 },
74 74 data () {
75 data() {
76 return { 75 return {
77 tableData: [], 76 tableData: [],
78 zsylFlag: false, 77 zsylFlag: false,
...@@ -83,14 +82,14 @@ export default { ...@@ -83,14 +82,14 @@ export default {
83 bsmSz: '', 82 bsmSz: '',
84 }; 83 };
85 }, 84 },
86 async created() { 85 created () {
87 this.list(); 86 this.list();
88 }, 87 },
89 methods: { 88 methods: {
90 //初始化列表 89 //初始化列表
91 list(){ 90 list () {
92 var bsmSldy = this.$parent.$parent.unitData[0].bsmSldy 91 var bsmSldy = this.$parent.unitData[0].bsmSldy
93 getBdcqzList({bsmSldy:bsmSldy}).then(res => { 92 getBdcqzList({ bsmSldy: bsmSldy }).then(res => {
94 if (res.code === 200) { 93 if (res.code === 200) {
95 this.tableData = res.result 94 this.tableData = res.result
96 if (res.result) { 95 if (res.result) {
...@@ -100,11 +99,11 @@ export default { ...@@ -100,11 +99,11 @@ export default {
100 }) 99 })
101 }, 100 },
102 //打开证书预览弹窗 101 //打开证书预览弹窗
103 openZsylDialog(item,type){ 102 openZsylDialog (item, type) {
104 this.zsylFlag = true; 103 this.zsylFlag = true;
105 this.bdcqz = item; 104 this.bdcqz = item;
106 this.$refs.zsylDialog.bdcqz = item; 105 this.$refs.zsylDialog.bdcqz = item;
107 if(type == 2){ 106 if (type == 2) {
108 this.$nextTick(() => { 107 this.$nextTick(() => {
109 this.$refs.zsylDialog.ysxlhList(); 108 this.$refs.zsylDialog.ysxlhList();
110 }); 109 });
...@@ -148,10 +147,9 @@ export default { ...@@ -148,10 +147,9 @@ export default {
148 147
149 .box-card { 148 .box-card {
150 float: left; 149 float: left;
151 width: 330px; 150 width: 300px;
152 margin-top: 20px; 151 margin-top: 10px;
153 margin-right: 20px; 152 margin-right: 10px;
154 height: 440px;
155 153
156 .szxx_body { 154 .szxx_body {
157 height: 240px; 155 height: 240px;
...@@ -160,9 +158,9 @@ export default { ...@@ -160,9 +158,9 @@ export default {
160 } 158 }
161 159
162 .szxx_header { 160 .szxx_header {
163 color: white; 161 color: #ffffff;
164 font-weight: bolder; 162 font-weight: bolder;
165 font-size: 18px; 163 font-size: 16px;
166 164
167 .header_type { 165 .header_type {
168 display: flex; 166 display: flex;
...@@ -173,7 +171,6 @@ export default { ...@@ -173,7 +171,6 @@ export default {
173 .header_text { 171 .header_text {
174 text-align: center; 172 text-align: center;
175 margin-top: 10px; 173 margin-top: 10px;
176 height: 50px;
177 line-height: 30px; 174 line-height: 30px;
178 } 175 }
179 } 176 }
...@@ -201,13 +198,12 @@ export default { ...@@ -201,13 +198,12 @@ export default {
201 198
202 .operation_button { 199 .operation_button {
203 border: 1px solid rgb(0, 121, 254); 200 border: 1px solid rgb(0, 121, 254);
204 padding: 15px 10px; 201 padding: 5px;
205 text-align: center; 202 text-align: center;
206 width: 100px;
207 } 203 }
208 204
209 .card_padding { 205 .card_padding {
210 padding-top: 20px 206 padding-top: 8px
211 } 207 }
212 208
213 .invalid-diglog { 209 .invalid-diglog {
......
...@@ -18,7 +18,13 @@ ...@@ -18,7 +18,13 @@
18 18
19 .title { 19 .title {
20 line-height: 36px; 20 line-height: 36px;
21 padding-left: 10px; 21 text-align: center;
22 }
23
24 .title-detail {
25 display: flex;
26 flex-wrap: wrap;
27 width: 100%;
22 } 28 }
23 29
24 ul { 30 ul {
...@@ -52,6 +58,10 @@ ...@@ -52,6 +58,10 @@
52 width: 260px; 58 width: 260px;
53 } 59 }
54 60
61 /deep/.el-menu-item {
62 padding-left: 5px !important;
63 }
64
55 /deep/.el-tabs__header { 65 /deep/.el-tabs__header {
56 margin-bottom: 0 !important; 66 margin-bottom: 0 !important;
57 } 67 }
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
26 <el-menu :default-active="activeIndex" @select="unitClick"> 26 <el-menu :default-active="activeIndex" @select="unitClick">
27 <el-menu-item v-for="(item, index) in unitData" :index="index.toString()" :key="index"> 27 <el-menu-item v-for="(item, index) in unitData" :index="index.toString()" :key="index">
28 <p>{{ item.bdcdyh }}</p> 28 <p>{{ item.bdcdyh }}</p>
29 <p>{{ item.zl }}</p> 29 <p class="title-detail">{{ item.zl }}</p>
30 </el-menu-item> 30 </el-menu-item>
31 </el-menu> 31 </el-menu>
32 </div> 32 </div>
......