From 68eaf315b64145e487d10e66183d542ee7f94d10 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 05 七月 2022 17:35:33 +0800
Subject: [PATCH] 1.生产管理完成部分功能2.自定义页面打印、二维码图形、水印显示实现了一个demo
---
src/views/jcsz/jsqd.vue | 254 +++++++++++++++++++++++++++++++++++---------------
1 files changed, 178 insertions(+), 76 deletions(-)
diff --git a/src/views/jcsz/jsqd.vue b/src/views/jcsz/jsqd.vue
index 8ed5b4e..40bbad5 100644
--- a/src/views/jcsz/jsqd.vue
+++ b/src/views/jcsz/jsqd.vue
@@ -1,8 +1,7 @@
<template>
<div>
- <!-- <div class="body" style="background-color: #ffffff; padding: 20px 10px 0 20px;">-->
- <div class="body" style="background-color: #ffffff; padding: 20px 10px 0 20px;" :style="{height:mainHeight+'px'}">
- <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div style="padding: 10px 5px 0 0">
<el-form
ref="form"
:model="form"
@@ -10,15 +9,21 @@
inline
style="display: flex;justify-content: space-between"
>
- <div style="display: flex;justify-content: space-around;width: 85%">
+ <div class="elForm">
<el-form-item label="瑙掕壊缂栫爜" style=" display: flex;">
- <el-input v-model="form.RoleCode" placeholder="璇疯緭鍏�" style="width: calc(100%-30px)" />
+ <el-input v-model="form.RoleCode" placeholder="璇疯緭鍏�" style="width: 200px" />
</el-form-item>
<el-form-item label="瑙掕壊鍚嶇О" style=" display: flex;">
- <el-input v-model="form.RoleName" placeholder="璇疯緭鍏�" style="width: calc(100%-30px)" />
+ <el-input v-model="form.RoleName" placeholder="璇疯緭鍏�" style="width: 200px" />
</el-form-item>
<el-form-item label="瑙掕壊绫诲瀷" style=" display: flex;">
- <el-select v-model="form.RoleTypeCode" filterable style="width: calc(100%-30px)" placeholder="璇烽�夋嫨">
+ <el-select
+ v-model="form.RoleTypeCode"
+ :popper-append-to-body="false"
+ filterable
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
<el-option
v-for="item in RoleTypeCodeArr2"
:key="item.roletype_code"
@@ -28,7 +33,7 @@
</el-select>
</el-form-item>
<el-form-item label="鍒涘缓浜哄憳" style=" display: flex;">
- <el-input v-model="form.UserName" style="width: calc(100%-30px)" placeholder="璇疯緭鍏�" />
+ <el-input v-model="form.UserName" style="width: 200px" placeholder="璇疯緭鍏�" />
</el-form-item>
</div>
<div style="display: flex;align-items: start;margin-top: 5px;">
@@ -37,16 +42,19 @@
</div>
</el-form>
</div>
- <div style="margin-bottom: 20px;display: flex; z-index: 2">
+ <el-divider />
+ <div style="margin-left: 10px;display: flex">
<el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
<el-button type="primary" icon="el-icon-setting" @click="settingButton">璁剧疆</el-button>
<el-button type="primary" icon="el-icon-upload2" @click="upload">瀵煎叆</el-button>
</div>
-
- <div style="display: flex;border: 1px solid #eee">
+ <el-divider />
+ <div class="elTableDiv">
<el-table
:data="tableData"
border
+ stripe
+ :height="tableHeight"
:style="{width: 100+'%',height:tableHeight+'px'}"
highlight-current-row
:header-cell-style="this.$headerCellStyle"
@@ -81,7 +89,6 @@
<el-table-column
prop="description"
label="瑙掕壊鎻忚堪"
- show-overflow-tooltip
sortable="custom"
/>
<el-table-column
@@ -93,7 +100,6 @@
prop="lm_date"
label="鍒涘缓鏃堕棿"
sortable="custom"
- show-overflow-tooltip
/>
<el-table-column
prop="lm_date"
@@ -120,7 +126,7 @@
>
<template slot-scope="{row}">
<div class="operationClass">
- <el-button type="text" @click="edit('edit',row)">淇敼</el-button>
+ <el-button type="text" @click="edit('edit',row)">缂栬緫</el-button>
<el-button type="text" @click="del(row)">鍒犻櫎</el-button>
</div>
</template>
@@ -142,25 +148,27 @@
<!-- 鏂板淇敼瀵硅瘽妗�-->
<el-dialog
- :title="operation==='add'?'娣诲姞':'淇敼'"
+ :title="operation==='add'?'鏂板':'缂栬緫'"
:visible.sync="dialogVisible"
- width="50%"
+ width="65%"
top="15vh"
+ :close-on-click-modal="false"
@closed="handleClose"
@close="handleClose"
>
<el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
<el-form-item label="瑙掕壊缂栫爜" prop="RoleCode">
- <el-input v-model="dialogForm.RoleCode" :disabled="operation!=='add'" style="width: 220px" />
+ <el-input v-model="dialogForm.RoleCode" :disabled="operation!=='add'" style="width: 200px" />
</el-form-item>
<el-form-item label="瑙掕壊鍚嶇О" prop="RoleName">
- <el-input v-model="dialogForm.RoleName" style="width: 220px" />
+ <el-input v-model="dialogForm.RoleName" style="width: 200px" />
</el-form-item>
<el-form-item prop="RoleTypeCode" label="瑙掕壊绫诲瀷">
<el-select
v-model="dialogForm.RoleTypeCode"
filterable
- style="width: 220px"
+ :popper-append-to-body="false"
+ style="width: 200px"
placeholder="璇烽�夋嫨"
>
<el-option
@@ -172,7 +180,7 @@
</el-select>
</el-form-item>
<el-form-item label="瑙掕壊鎻忚堪" prop="description">
- <el-input v-model="dialogForm.description" type="textarea" style="width: 220px" />
+ <el-input v-model="dialogForm.description" type="textarea" style="width: 200px" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@@ -184,12 +192,12 @@
</el-dialog>
<!-- 璁剧疆鎸夐挳瀵硅瘽妗�-->
<el-dialog
- title="瑙掕壊绫诲瀷"
+ title="璁剧疆"
:visible.sync="settingDialogVisible"
width="50%"
top="15vh"
+ :close-on-click-modal="false"
class="settingDialogVisible"
- @closed="handleCloseSetting"
@close="handleCloseSetting"
>
<div style="margin-bottom: 20px;display: flex">
@@ -199,12 +207,14 @@
<el-table
:data="RoleTypeCodeArr"
border
+ height="300"
highlight-current-row
- :style="{width: 100+'%',height:tableHeight-300+'px'}"
:header-cell-style="this.$headerCellStyle"
:cell-style="this.$cellStyle"
@sort-change="sortChangeOfSetting"
>
+ <!-- :style="{width: 100+'%',height:tableHeight-300+'px'}"-->
+
<!-- <el-table-column-->
<!-- type="selection"-->
<!-- width="50"-->
@@ -212,7 +222,7 @@
<el-table-column
width="50"
label="搴忓彿"
- type="index"
+ prop="RowNum"
/>
<el-table-column
prop="roletype_code"
@@ -235,7 +245,6 @@
</template>
</el-table-column>
<el-table-column label="鎿嶄綔">
-
<template slot-scope="{row}">
<div class="operationClass">
<el-button v-if="row.isVisible===0" type="text" @click="delSetting(row)">鍒犻櫎</el-button>
@@ -243,12 +252,6 @@
<el-button v-if="row.isVisible===1" type="text" @click="formSettingCancel(row)">鍙栨秷</el-button>
</div>
</template>
- <!-- <template v-for="item in RoleTypeCodeArr" slot-scope="{row}">-->
- <!-- <div :key="item.roletype_code" class="operationClass">-->
- <!-- <el-button v-if="item.isVisible" type="text" @click="formSettingSave(row)">淇濆瓨</el-button>-->
- <!-- <el-button v-if="item.isVisible" type="text" @click="formSettingCancel(row)">鍙栨秷</el-button>-->
- <!-- </div>-->
- <!-- </template>-->
</el-table-column>
</el-table>
<!--鍒嗛〉-->
@@ -273,8 +276,10 @@
<el-dialog
title="瑙掕壊鍏宠仈鐢ㄦ埛"
:visible.sync="userDialogVisible"
- width="90%"
+ width="80%"
+ :close-on-click-modal="false"
top="15vh"
+ :fullscreen="isFullscreen"
class="userDialogVisible"
@closed="handleCloseUser"
@close="handleCloseUser"
@@ -289,20 +294,21 @@
<div style="display: flex;min-height: 50px">
<el-form ref="dialogFormUser" inline :model="dialogFormUser" label-width="80px">
<el-form-item label="鐢ㄦ埛缂栫爜">
- <el-input v-model="dialogFormUser.usercode" class="userDialogVisibleInput" style="width: 220px" />
+ <el-input v-model="dialogFormUser.usercode" style="width: 200px" />
</el-form-item>
<el-form-item label="鐢ㄦ埛鍚嶇О">
- <el-input v-model="dialogFormUser.username" class="userDialogVisibleInput" style="width: 220px" />
+ <el-input v-model="dialogFormUser.username" style="width: 200px" />
</el-form-item>
<el-form-item label="鎵�灞炵粍缁�">
<el-cascader
ref="dialogCascaderUser"
key="cascaderKey"
filterable
+ popper-class="elCascader"
+ :append-to-body="false"
:options="StuOrgArr"
:props="defaultProps"
- class="userDialogVisibleInput"
- style="width: 220px;"
+ style="width: 200px;"
@change="dialogCascaderChange"
/>
@@ -311,9 +317,9 @@
<el-select
v-model="dialogFormUser.isrole"
filterable
- style="width: 220px"
+ :popper-append-to-body="false"
+ style="width: 200px"
placeholder="璇烽�夋嫨"
- class="userDialogVisibleInput"
>
<el-option
v-for="item in roleArr"
@@ -344,7 +350,7 @@
:data="dialogFormUserTable"
border
highlight-current-row
- :style="{width: 100+'%',height:tableHeight-300+'px'}"
+ height="300"
:header-cell-style="this.$headerCellStyle"
:cell-style="this.$cellStyle"
:row-key="getRowKey"
@@ -415,6 +421,8 @@
:visible.sync="dialogVisibleRight"
width="50%"
top="15vh"
+ :fullscreen="isFullscreen"
+ :close-on-click-modal="false"
class="dialogVisibleRight"
@closed="handleCloseRight"
@close="handleCloseRight"
@@ -525,6 +533,7 @@
// }
// }
return {
+ isFullscreen: false,
mainHeight: 0,
tableHeight: 0,
form: {
@@ -777,8 +786,11 @@
// 鑾峰彇椤甸潰楂樺害
getHeight() {
this.$nextTick(() => {
- this.mainHeight = window.innerHeight - 200
+ console.log(window.innerHeight)
+ console.log(window.innerHeight)
+ this.mainHeight = window.innerHeight - 250
this.tableHeight = this.mainHeight - 100
+ this.isFullscreen = window.innerHeight < 800
})
},
/* 璁剧疆妯″潡*/
@@ -789,6 +801,7 @@
this.RoleTypeCodeArr.splice(index, 1)
}
})
+ this.getRoleTypeSearch2()
},
// 璁剧疆瀵硅瘽妗嗗彇娑堜簨浠�
settingDialogVisibleCancel() {
@@ -799,7 +812,9 @@
},
// 娣诲姞鎸夐挳
addSetting() {
- const data = { roletype_code: '', roletype_name: '', isVisible: 1 }
+ let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
+ number = number === 0 ? Math.random() * Math.random() : number
+ const data = { roletype_code: '', roletype_name: '', isVisible: 1, number: number }
this.RoleTypeCodeArr.unshift(data)
},
// 鍒犻櫎鎸夐挳
@@ -833,14 +848,14 @@
}
const res = await RoleTypeAdd([data])
if (res.code === '200') {
- this.$message.success('娣诲姞鎴愬姛锛�')
+ this.$message.success('淇濆瓨鎴愬姛锛�')
await this.getRoleTypeSearch()
}
},
// 璁剧疆琛ㄥ崟鍙栨秷浜嬩欢
formSettingCancel(row) {
this.RoleTypeCodeArr.forEach((item, index) => {
- if (item.isVisible === 1) {
+ if (item.isVisible === 1 && item.number === row.number) {
this.RoleTypeCodeArr.splice(index, 1)
}
})
@@ -961,31 +976,51 @@
const rightPCArrFlag = res[0][0].flag
const rightAPPArrFlag = res[1][0].flag
+ let waitFlag = false// 鍥炴樉绛夊緟鏄惁鏀捐
+
// 1.绗竴绉嶆儏鍐礟C鍜孉PP閮戒竴娆¢兘娌¢�変腑鏃� PC鏈�変腑锛孉PP鏈�変腑
if (rightPCArrFlag === 'N' && rightAPPArrFlag === 'N') {
pcIsSelected1 = true
this.dialogFormRight.rightCurrentCode = this.dialogFormRight.rightPCArr[0].code
}
+
// 2.绗簩绉嶆儏鍐礟C宸查�変腑锛孉PP鏈�変腑
if (rightPCArrFlag === 'Y' && rightAPPArrFlag === 'N') {
pcIsSelected1 = true
pcIsSelected2 = true
- setTimeout(() => {
- this.$nextTick(() => {
- $('input:checkbox').eq(0).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
- })
- }, 10)
+
+ const interval = setInterval(() => {
+ if ($('input:checkbox').length > 0) {
+ waitFlag = true
+ }
+ if (waitFlag) {
+ clearInterval(interval)
+ this.$nextTick(() => {
+ $("input[name='PC']").eq(0).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
+ })
+ }
+ }, 100)
+
this.dialogFormRight.rightCurrentCode = this.dialogFormRight.rightPCArr[0].code
}
+
// 3.绗笁绉嶆儏鍐礟C鏈�変腑锛孉PP宸查�変腑
if (rightPCArrFlag === 'N' && rightAPPArrFlag === 'Y') {
appIsSelected1 = true
appIsSelected2 = true
- setTimeout(() => {
- this.$nextTick(() => {
- $('input:checkbox').eq(1).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
- })
- }, 10)
+
+ const interval = setInterval(() => {
+ if ($('input:checkbox').length > 0) {
+ waitFlag = true
+ }
+ if (waitFlag) {
+ clearInterval(interval)
+ this.$nextTick(() => {
+ $("input[name='APP']").eq(0).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
+ })
+ }
+ }, 100)
+
this.dialogFormRight.rightCurrentCode = this.dialogFormRight.rightAPPArr[0].code
}
// 4.绗洓绉嶆儏鍐礟C宸查�変腑锛孉PP宸查�変腑
@@ -994,12 +1029,20 @@
pcIsSelected2 = true
appIsSelected1 = false
appIsSelected2 = true
- setTimeout(() => {
- this.$nextTick(() => {
- $('input:checkbox').eq(0).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
- $('input:checkbox').eq(1).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
- })
- }, 10)
+
+ const interval = setInterval(() => {
+ if ($('input:checkbox').length > 0) {
+ waitFlag = true
+ }
+ if (waitFlag) {
+ clearInterval(interval)
+ this.$nextTick(() => {
+ $("input[name='PC']").eq(0).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
+ $("input[name='APP']").eq(0).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
+ })
+ }
+ }, 100)
+
this.dialogFormRight.rightCurrentCode = this.dialogFormRight.rightPCArr[0].code
}
this.dialogFormRight.rightOperationArr.push({
@@ -1069,7 +1112,7 @@
this.dialogVisibleRight = false
},
// 鏉冮檺瀵硅瘽妗嗙‘璁や簨浠�
- async rightDialogVisibleConfirm() {
+ async rightDialogVisibleConfirm() {
const rightPCArrSelected = []// 淇濆瓨鎻愪氦鏍戦�変腑 PC
const rightAPPArrSelected = []// 淇濆瓨鎻愪氦鏍戦�変腑 APP
@@ -1276,6 +1319,13 @@
height: 30px;
display: flex;
align-items: center;
+ //border: 1px solid $main_color;
+ border: none;
+ padding: 0 20px;
+}
+
+::v-deep .el-button--primary:hover {
+ border: none;
}
::v-deep .el-button--info {
@@ -1283,10 +1333,16 @@
height: 30px;
display: flex;
align-items: center;
+ padding: 0 20px;
}
::v-deep .el-pagination.is-background .el-pager li:not(.disabled).active {
background-color: $main_color !important;
+}
+
+::v-deep .el-dialog__footer {
+ display: flex;
+ justify-content: flex-end;
}
.footerButton {
@@ -1299,15 +1355,16 @@
height: 30px;
display: flex;
align-items: center;
+ padding: 0 20px;
}
::v-deep .el-button--default:hover {
color: #606266;
}
-::v-deep .el-dialog__body {
- padding: 20px 100px !important;
-}
+//::v-deep .el-dialog__body {
+// padding: 20px 100px !important;
+//}
.settingDialogVisible, .userDialogVisible, .dialogVisibleRight {
::v-deep .el-dialog__body {
@@ -1365,24 +1422,14 @@
}
input[type=checkbox]:checked::after {
- content: "鉁�";
- //content: "鈭�";
+ //content: "鉁�";
+ content: "鈭�";
color: #fff;
font-size: 12px;
font-weight: bold;
background-color: $main_color;
}
}
-}
-
-.userDialogVisible {
- ::v-deep .userDialogVisibleInput {
- //width:calc(100% - 30px) !important;
- }
-
- //::v-deep .el-form-item {
- // width:calc(100% - 30px) !important;
- //}
}
::v-deep .el-radio__input.is-checked .el-radio__inner {
@@ -1401,7 +1448,11 @@
::v-deep .el-input__inner {
height: 30px;
- line-height:30px;
+ line-height: 30px;
+}
+
+::v-deep .el-input__inner:focus {
+ border-color: $main_color;
}
::v-deep .el-table .caret-wrapper {
@@ -1462,4 +1513,55 @@
::v-deep .el-radio.is-bordered + .el-radio.is-bordered {
margin: 10px 30px 0px 0;
}
+
+.body ::v-deep .el-divider {
+ border: 1px solid #eee;
+ width: 99%;
+ margin: 10px auto;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+::v-deep .el-input__inner:focus {
+ border-color: $main_color;
+}
+
+::v-deep .el-select .el-input__inner:focus {
+ border-color: $main_color;
+}
+
+::v-deep .el-select-dropdown__item.selected {
+ color: $main_color;
+}
+
+::v-deep .el-textarea__inner:focus {
+ border-color: $main_color;
+}
+
+</style>
+<style lang="scss">
+.elCascader {
+ //.el-cascader-node.in-active-path, .el-cascader-node.is-active, .el-cascader-node.is-selectable.in-checked-path {
+ // color: #42b983 ;
+ //}
+ .el-cascader-node.is-selectable.in-checked-path {
+ color: #42b983;
+ }
+
+ .el-radio__input.is-checked .el-radio__inner {
+ background-color: #42b983;
+ border-color: #42b983;
+ }
+
+ .el-radio__input.is-checked .el-radio__inner:hover {
+ border-color: #42b983;
+ }
+
+ .el-input__inner {
+ border-color: #42b983 !important;
+ }
+
+}
</style>
--
Gitblit v1.9.3