692e8fc1 by xiaomiao
2 parents 1773962b f0bf18c2
...@@ -21,6 +21,4 @@ yarn-error.log* ...@@ -21,6 +21,4 @@ yarn-error.log*
21 *.njsproj 21 *.njsproj
22 *.sln 22 *.sln
23 *.sw? 23 *.sw?
24 /src/api/config.js
25
26 package-lock.json 24 package-lock.json
......
...@@ -11,10 +11,11 @@ ...@@ -11,10 +11,11 @@
11 "@jiaminghi/data-view": "^2.10.0", 11 "@jiaminghi/data-view": "^2.10.0",
12 "axios": "^0.21.1", 12 "axios": "^0.21.1",
13 "clipboard": "^2.0.11", 13 "clipboard": "^2.0.11",
14 "jsoneditor": "^9.9.2",
15 "core-js": "^3.6.5", 14 "core-js": "^3.6.5",
16 "echarts": "^4.6.0", 15 "echarts": "^4.6.0",
16 "file-saver": "^2.0.5",
17 "js-cookie": "2.2.0", 17 "js-cookie": "2.2.0",
18 "jsoneditor": "^9.9.2",
18 "lodash": "^4.17.21", 19 "lodash": "^4.17.21",
19 "node-sass": "^4.14.1", 20 "node-sass": "^4.14.1",
20 "normalize.css": "7.0.0", 21 "normalize.css": "7.0.0",
...@@ -24,7 +25,9 @@ ...@@ -24,7 +25,9 @@
24 "vue-json-editor": "^1.4.3", 25 "vue-json-editor": "^1.4.3",
25 "vue-router": "3.0.2", 26 "vue-router": "3.0.2",
26 "vuex": "3.1.0", 27 "vuex": "3.1.0",
27 "xe-utils": "^3.5.7" 28 "xe-utils": "^3.5.7",
29 "xlsx": "^0.17.0",
30 "xlsx-style": "^0.8.13"
28 }, 31 },
29 "devDependencies": { 32 "devDependencies": {
30 "@vue/cli-plugin-babel": "4.4.4", 33 "@vue/cli-plugin-babel": "4.4.4",
......
1 export default {
2 // SERVERAPI: '/service-bdcsjsb-th', //浩浩
3 // SERVERAPI: '/service-bdcsjsb-zz',
4 SERVERAPI: '/bdcsjsb', //赵千
5 MANAGEMENTAPI: 'http://192.168.2.236/management'
6 // SERVERAPI: '/bdcsjsb-service'
7 // SERVERAPI: '/bdcsjsb-jiao0'
8 }
9 // 汉中
10 // export default {
11 // // SERVERAPI: '/service-bdcsjsb-th', //线上
12 // SERVERAPI: '/bdcsjsb', //赵千
13 // MANAGEMENTAPI: 'http://172.16.56.32:8877/management'
14 // }
1 <template> 1 <template>
2 <!-- 编辑 --> 2 <el-dialog :close-on-click-modal="false" top="0" @close="closeDialog" custom-class="dialogBox editDialogBox mainCenter"
3 <el-dialog :close-on-click-modal="false" top="0" @close="closeDialog" 3 :visible.sync="dialogVisible" width="85%">
4 custom-class="dialogBox editDialogBox mainCenter" :visible.sync="dialogVisible" width="85%">
5 <div slot="title" class="dialog_title" ref="dialogTitle"> 4 <div slot="title" class="dialog_title" ref="dialogTitle">
6 {{ title || '标题' }} 5 {{ title || '标题' }}
7 </div> 6 </div>
...@@ -96,6 +95,10 @@ ...@@ -96,6 +95,10 @@
96 <component :is="editItem" ref="editItem" :class="{ 'editForm': $store.state.business.Edit }" 95 <component :is="editItem" ref="editItem" :class="{ 'editForm': $store.state.business.Edit }"
97 :bsmYwsjb="bsmYwsjb" :bsmSjsb="dataReport.bsmReport || dataReport.bsmSjsb" /> 96 :bsmYwsjb="bsmYwsjb" :bsmSjsb="dataReport.bsmReport || dataReport.bsmSjsb" />
98 </div> 97 </div>
98 <div class="d-center">
99 <btn nativeType="cz" @click="dialogVisible = false">取 消</btn>
100 <btn nativeType="cx" @click="submitForm">确 定</btn>
101 </div>
99 </div> 102 </div>
100 <div v-if="titleName == 'xyjg'"> 103 <div v-if="titleName == 'xyjg'">
101 <Xyjg :form-data='dataReport'></Xyjg> 104 <Xyjg :form-data='dataReport'></Xyjg>
...@@ -160,7 +163,6 @@ export default { ...@@ -160,7 +163,6 @@ export default {
160 digitalSign: "", 163 digitalSign: "",
161 }, 164 },
162 images: require("./images/success.gif"), 165 images: require("./images/success.gif"),
163 saveloding: false,
164 dialogVisible: false, 166 dialogVisible: false,
165 activeName: undefined, 167 activeName: undefined,
166 editItem: "", 168 editItem: "",
...@@ -234,51 +236,25 @@ export default { ...@@ -234,51 +236,25 @@ export default {
234 this.headerList = []; 236 this.headerList = [];
235 }, 237 },
236 submitForm () { 238 submitForm () {
237 let _this = this; 239 // this.$store.dispatch(
238 this.$store.dispatch( 240 // "business/setRules",
239 "business/setRules", 241 // this.$store.state.business.subRules
240 this.$store.state.business.subRules 242 // );
241 ); 243 this.$refs["editItem"].handleUpdateForm()
242 this.$nextTick(() => { 244 .then((res) => {
243 this.$refs["editItem"] && 245 if (res == 200) {
244 this.$refs["editItem"].verificationForm().then((res) => { 246 this.$message({
245 if (!res) { 247 message: '修改成功',
246 _this.$message({ 248 type: 'success'
247 message: "请检查表单必填项是否完整", 249 })
248 type: "warning", 250 }
249 }); 251 })
250 return false; 252 .catch(function (error) {
251 } else { 253 this.$alert(error, "提示", {
252 _this.saveloding = true; 254 confirmButtonText: "确定",
253 _this.$refs["editItem"] 255 type: "error"
254 .handleUpdateForm() 256 })
255 .then((res) => { 257 })
256 if (res == 200) {
257 _this.$alert(
258 '<p><img class="success-images" src="' +
259 this.images +
260 '"/>编辑成功!</p>',
261 "提示",
262 {
263 showConfirmButton: false,
264 dangerouslyUseHTMLString: true,
265 }
266 );
267 setTimeout(() => {
268 MessageBox.close(false);
269 }, 1500);
270 }
271 })
272 .catch(function (error) {
273 _this.$alert(error, "提示", {
274 confirmButtonText: "确定",
275 type: "error",
276 });
277 });
278 _this.saveloding = false;
279 }
280 });
281 });
282 } 258 }
283 } 259 }
284 } 260 }
...@@ -315,6 +291,8 @@ export default { ...@@ -315,6 +291,8 @@ export default {
315 } 291 }
316 292
317 .sjmx { 293 .sjmx {
294 padding-bottom: 25px;
295
318 /deep/.el-tabs__item { 296 /deep/.el-tabs__item {
319 height: 50px; 297 height: 50px;
320 padding-top: 6px; 298 padding-top: 6px;
...@@ -390,7 +368,7 @@ export default { ...@@ -390,7 +368,7 @@ export default {
390 } 368 }
391 369
392 .edit-content { 370 .edit-content {
393 height: 450px; 371 height: 420px;
394 overflow-y: auto; 372 overflow-y: auto;
395 overflow-x: hidden; 373 overflow-x: hidden;
396 padding-right: 1px; 374 padding-right: 1px;
......
1 <template> 1 <template>
2 <el-input type="textarea" :rows="6" disabled placeholder="配置参数" v-model="resultInfo"> 2 <div>
3 </el-input> 3 <el-input type="textarea" :rows="6" disabled placeholder="配置参数" v-model="resultInfo">
4 </el-input>
5 </div>
4 </template> 6 </template>
5 <script> 7 <script>
6 // 引入json编译器 8 // 引入json编译器
......
1 1
2 import XLSX2 from "xlsx";
3 import XLSX from "xlsx-style";
2 /** 4 /**
3 * 获取数据类型 5 * 获取数据类型
4 * @param {All} [o] 需要检测的数据 6 * @param {All} [o] 需要检测的数据
...@@ -130,4 +132,104 @@ export function getCurrentDate (date = 'firstDay') { ...@@ -130,4 +132,104 @@ export function getCurrentDate (date = 'firstDay') {
130 } else { 132 } else {
131 return new Date(nowYear, nowMonth + 1, 0); // 本月结束时间 133 return new Date(nowYear, nowMonth + 1, 0); // 本月结束时间
132 } 134 }
135 }
136
137 export function setExport2Excel (exportName) {
138 /* generate workbook object from table */
139 var wb = XLSX2.utils.table_to_sheet(document.querySelector("#mytable"));//mytable为表格的id名
140 if (!wb['!merges']) {
141 this.$message.warning('无法导出:报表无数据');
142 return
143 }
144 for (var i = 0; i < 11; i++) {
145 wb["!cols"][i] = { wpx: 150 }
146 }
147 // 样式的文档地址
148 // https://www.npmjs.com/package/xlsx-style
149 for (const key in wb) {
150 if (key.indexOf('!') === -1 && wb[key].v) {
151 wb[key].s = {
152 font: {//字体设置
153 sz: 13,
154 bold: false,
155 color: {
156 rgb: '000000'//十六进制,不带#
157 }
158 },
159 alignment: {//文字居中
160 horizontal: 'center',
161 vertical: 'center',
162 wrapText: 1,
163 indent: 0,
164 wrap_text: true
165 },
166 border: { // 设置边框
167 top: { style: 'thin' },
168 bottom: { style: 'thin' },
169 left: { style: 'thin' },
170 right: { style: 'thin' }
171 }
172 }
173 }
174 }
175 var data = addRangeBorder(wb['!merges'], wb) //合并项添加边框
176 var filedata = sheet2blob(data)
177 openDownloadDialog(filedata, exportName + ".xlsx")
178 }
179 //为合并项添加边框
180 function addRangeBorder (range, ws) {
181 let arr = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
182
183 range.forEach(item => {
184 let startColNumber = Number(item.s.r), endColNumber = Number(item.e.r);
185 let startRowNumber = Number(item.s.c), endRowNumber = Number(item.e.c);
186 const test = ws[arr[startRowNumber] + (startColNumber + 1)];
187 for (let col = startColNumber; col <= endColNumber; col++) {
188 for (let row = startRowNumber; row <= endRowNumber; row++) {
189 ws[arr[row] + (col + 1)] = test;
190 }
191 }
192 })
193 return ws;
194 }
195 //将一个sheet转成最终的excel文件的blob对象,然后利用URL.createObjectURL下载
196 function sheet2blob (sheet, sheetName) {
197 sheetName = sheetName || 'sheet1';
198 var workbook = {
199 SheetNames: [sheetName],
200 Sheets: {}
201 };
202 workbook.Sheets[sheetName] = sheet; // 生成excel的配置项
203
204 var wopts = {
205 bookType: 'xlsx', // 要生成的文件类型
206 bookSST: false, // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性
207 type: 'binary'
208 };
209 var wbout = XLSX.write(workbook, wopts);
210 var blob = new Blob([s2ab(wbout)], {
211 type: "application/octet-stream"
212 }); // 字符串转ArrayBuffer
213 function s2ab (s) {
214 var buf = new ArrayBuffer(s.length);
215 var view = new Uint8Array(buf);
216 for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
217 return buf;
218 }
219 return blob;
220 }
221 function openDownloadDialog (url, saveName) {
222 if (typeof url == 'object' && url instanceof Blob) {
223 url = URL.createObjectURL(url); // 创建blob地址
224 }
225 var aLink = document.createElement('a');
226 aLink.href = url;
227 aLink.download = saveName || ''; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效
228 var event;
229 if (window.MouseEvent) event = new MouseEvent('click');
230 else {
231 event = document.createEvent('MouseEvents');
232 event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
233 }
234 aLink.dispatchEvent(event);
133 } 235 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -46,7 +46,7 @@ class data extends filter { ...@@ -46,7 +46,7 @@ class data extends filter {
46 { 46 {
47 prop: "bizMsgid", 47 prop: "bizMsgid",
48 label: "业务报文ID", 48 label: "业务报文ID",
49 width: 90, 49 width: 98,
50 }, 50 },
51 { 51 {
52 prop: "createdate", 52 prop: "createdate",
......
...@@ -9,4 +9,7 @@ ...@@ -9,4 +9,7 @@
9 /deep/.el-table--group::after, 9 /deep/.el-table--group::after,
10 .el-table--border::after { 10 .el-table--border::after {
11 width: 0 !important; 11 width: 0 !important;
12 }
13 .export-excel-wrapper{
14 display: inline-block;
12 } 15 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
25 <el-form-item> 25 <el-form-item>
26 <btn nativeType="cz" @click="handleResetForm">重置</btn> 26 <btn nativeType="cz" @click="handleResetForm">重置</btn>
27 <btn nativeType="cx" @click="handleSearch">查询</btn> 27 <btn nativeType="cx" @click="handleSearch">查询</btn>
28 <btn nativeType="cx" @click="handlesetExport2Excel(2121)">导出1</btn>
28 </el-form-item> 29 </el-form-item>
29 </el-col> 30 </el-col>
30 </el-row> 31 </el-row>
...@@ -32,9 +33,9 @@ ...@@ -32,9 +33,9 @@
32 </div> 33 </div>
33 <!-- 列表区域 --> 34 <!-- 列表区域 -->
34 <div class="from-clues-content"> 35 <div class="from-clues-content">
35 <lb-table ref="table" :page-size="pageData.size" :current-page.sync="pageData.current" :total="tableData.total" 36 <lb-table ref="table" :id="'mytable'" :page-size="pageData.size" :header-cell-style="headerStyle"
36 @size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns" 37 :current-page.sync="pageData.current" :total="tableData.total" @size-change="handleSizeChange"
37 :data="tableData.data"> 38 @p-current-change="handleCurrentChange" :column="tableData.columns" :data="tableData.data">
38 </lb-table> 39 </lb-table>
39 </div> 40 </div>
40 </div> 41 </div>
...@@ -49,7 +50,7 @@ import tableMixin from "@/mixins/tableMixin.js"; ...@@ -49,7 +50,7 @@ import tableMixin from "@/mixins/tableMixin.js";
49 //引入日期处理方法 50 //引入日期处理方法
50 import { timeFormat } from "@/utils/operation"; 51 import { timeFormat } from "@/utils/operation";
51 // 获取时间 52 // 获取时间
52 import { getCurrentDate } from "@/utils/tools"; 53 import { getCurrentDate, setExport2Excel } from "@/utils/tools";
53 export default { 54 export default {
54 name: "jsbwcx", 55 name: "jsbwcx",
55 mixins: [tableMixin], 56 mixins: [tableMixin],
...@@ -112,12 +113,22 @@ export default { ...@@ -112,12 +113,22 @@ export default {
112 pageSize: 10, 113 pageSize: 10,
113 current: 1 114 current: 1
114 } 115 }
115 }; 116 }
116 }, 117 },
117 created () { 118 created () {
118 this.handleResetForm() 119 this.handleResetForm()
119 }, 120 },
120 methods: { 121 methods: {
122 headerStyle ({ row, rowIndex }) {
123 if (rowIndex == 3) {
124 row[2].rowSpan = 2;
125 row[3].rowSpan = 2;
126 row[4].rowSpan = 2;
127 }
128 },
129 handlesetExport2Excel (val) {
130 setExport2Excel(val)
131 },
121 //截止日期变化 132 //截止日期变化
122 endTimeChange (val) { 133 endTimeChange (val) {
123 this.form.endTime = timeFormat(new Date(val), true) 134 this.form.endTime = timeFormat(new Date(val), true)
......
...@@ -24,7 +24,9 @@ ...@@ -24,7 +24,9 @@
24 <el-col :span="12" class="btnColRight"> 24 <el-col :span="12" class="btnColRight">
25 <el-form-item> 25 <el-form-item>
26 <btn nativeType="cz" @click="handleResetForm">重置</btn> 26 <btn nativeType="cz" @click="handleResetForm">重置</btn>
27 <!-- 导出excel -->
27 <btn nativeType="cx" @click="handleSearch">查询</btn> 28 <btn nativeType="cx" @click="handleSearch">查询</btn>
29 <btn nativeType="cx" @click="handlesetExport2Excel(2121)">导出</btn>
28 </el-form-item> 30 </el-form-item>
29 </el-col> 31 </el-col>
30 </el-row> 32 </el-row>
...@@ -32,9 +34,9 @@ ...@@ -32,9 +34,9 @@
32 </div> 34 </div>
33 <!-- 列表区域 --> 35 <!-- 列表区域 -->
34 <div class="from-clues-content"> 36 <div class="from-clues-content">
35 <lb-table ref="table" :page-size="pageData.size" :current-page.sync="pageData.current" :total="tableData.total" 37 <lb-table ref="table" :page-size="pageData.size" :id="'mytable'" :current-page.sync="pageData.current"
36 @size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns" 38 :total="tableData.total" @size-change="handleSizeChange" @p-current-change="handleCurrentChange"
37 :data="tableData.data"> 39 :column="tableData.columns" :data="tableData.data">
38 </lb-table> 40 </lb-table>
39 </div> 41 </div>
40 </div> 42 </div>
...@@ -49,7 +51,7 @@ import tableMixin from "@/mixins/tableMixin.js"; ...@@ -49,7 +51,7 @@ import tableMixin from "@/mixins/tableMixin.js";
49 //引入日期处理方法 51 //引入日期处理方法
50 import { timeFormat } from "@/utils/operation"; 52 import { timeFormat } from "@/utils/operation";
51 // 获取时间 53 // 获取时间
52 import { getCurrentDate } from "@/utils/tools"; 54 import { getCurrentDate, setExport2Excel } from "@/utils/tools";
53 export default { 55 export default {
54 name: "jsbwcx", 56 name: "jsbwcx",
55 mixins: [tableMixin], 57 mixins: [tableMixin],
...@@ -118,6 +120,9 @@ export default { ...@@ -118,6 +120,9 @@ export default {
118 this.handleResetForm() 120 this.handleResetForm()
119 }, 121 },
120 methods: { 122 methods: {
123 handlesetExport2Excel (val) {
124 setExport2Excel(val)
125 },
121 //截止日期变化 126 //截止日期变化
122 endTimeChange (val) { 127 endTimeChange (val) {
123 this.form.endTime = timeFormat(new Date(val), true) 128 this.form.endTime = timeFormat(new Date(val), true)
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
25 <el-form-item> 25 <el-form-item>
26 <btn nativeType="cz" @click="handleResetForm">重置</btn> 26 <btn nativeType="cz" @click="handleResetForm">重置</btn>
27 <btn nativeType="cx" @click="handleSearch">查询</btn> 27 <btn nativeType="cx" @click="handleSearch">查询</btn>
28 <btn nativeType="cx" @click="handlesetExport2Excel(2121)">导出</btn>
28 </el-form-item> 29 </el-form-item>
29 </el-col> 30 </el-col>
30 </el-row> 31 </el-row>
...@@ -32,9 +33,9 @@ ...@@ -32,9 +33,9 @@
32 </div> 33 </div>
33 <!-- 列表区域 --> 34 <!-- 列表区域 -->
34 <div class="from-clues-content"> 35 <div class="from-clues-content">
35 <lb-table ref="table" :page-size="pageData.size" :current-page.sync="pageData.current" :total="tableData.total" 36 <lb-table ref="table" :id="'mytable'" :page-size="pageData.size" :current-page.sync="pageData.current"
36 @size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns" 37 :total="tableData.total" @size-change="handleSizeChange" @p-current-change="handleCurrentChange"
37 :data="tableData.data"> 38 :column="tableData.columns" :data="tableData.data">
38 </lb-table> 39 </lb-table>
39 </div> 40 </div>
40 </div> 41 </div>
...@@ -49,7 +50,7 @@ import tableMixin from "@/mixins/tableMixin.js"; ...@@ -49,7 +50,7 @@ import tableMixin from "@/mixins/tableMixin.js";
49 //引入日期处理方法 50 //引入日期处理方法
50 import { timeFormat } from "@/utils/operation"; 51 import { timeFormat } from "@/utils/operation";
51 // 获取时间 52 // 获取时间
52 import { getCurrentDate } from "@/utils/tools"; 53 import { getCurrentDate, setExport2Excel } from "@/utils/tools";
53 export default { 54 export default {
54 name: "jsbwcx", 55 name: "jsbwcx",
55 mixins: [tableMixin], 56 mixins: [tableMixin],
...@@ -111,13 +112,16 @@ export default { ...@@ -111,13 +112,16 @@ export default {
111 total: 0, 112 total: 0,
112 pageSize: 10, 113 pageSize: 10,
113 current: 1 114 current: 1
114 } 115 },
115 }; 116 }
116 }, 117 },
117 created () { 118 created () {
118 this.handleResetForm() 119 this.handleResetForm()
119 }, 120 },
120 methods: { 121 methods: {
122 handlesetExport2Excel (val) {
123 setExport2Excel(val)
124 },
121 //截止日期变化 125 //截止日期变化
122 endTimeChange (val) { 126 endTimeChange (val) {
123 this.form.endTime = timeFormat(new Date(val), true) 127 this.form.endTime = timeFormat(new Date(val), true)
......
...@@ -60,6 +60,9 @@ module.exports = { ...@@ -60,6 +60,9 @@ module.exports = {
60 // configureWebpack通过操作对象的形式,来修改默认的webpack配置 60 // configureWebpack通过操作对象的形式,来修改默认的webpack配置
61 configureWebpack: { 61 configureWebpack: {
62 name: name, 62 name: name,
63 externals: [{
64 './cptable': 'var cptable'
65 }],
63 resolve: { 66 resolve: {
64 alias: { 67 alias: {
65 '@': resolve('src') 68 '@': resolve('src')
......