From df5f05fdc4acc8b0258d391a495e544bc0991e64 Mon Sep 17 00:00:00 2001
From: 王震 <10952869+daywangzhen@user.noreply.gitee.com>
Date: 星期六, 26 八月 2023 17:42:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/views/chart/work/index.vue | 82 ++-
src/views/basicData/index.vue | 51 -
src/views/experiment/inspectionApplication/index.vue | 77 +--
src/views/standardLibrary/index.vue | 124 +++--
src/api/standardLibrary.js | 18
src/components/experiment/checkTheReport/index.vue | 126 ++++++
src/layout/components/Navbar.vue | 2
src/api/laboratory/organizational.js | 40 +
src/views/laboratory/personnel/index.vue | 435 ++++++++++++++++----
src/router/index.js | 1
src/api/util/requestUtil.js | 8
src/main.js | 1
package.json | 1
src/views/laboratory/organizational/index.vue | 216 ++++++++-
src/views/experiment/checkTheReport/index.vue | 50 ++
src/views/experiment/inspectionApplication/Viewdetails/index.vue | 1
16 files changed, 926 insertions(+), 307 deletions(-)
diff --git a/package.json b/package.json
index 048f7b0..0b19172 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"postcss-pxtorem": "^5.1.1",
+ "print-js": "^1.6.0",
"vue": "2.6.10",
"vue-clipboard2": "^0.3.3",
"vue-router": "3.0.6",
diff --git a/src/api/laboratory/organizational.js b/src/api/laboratory/organizational.js
index a88b77f..bec30c9 100644
--- a/src/api/laboratory/organizational.js
+++ b/src/api/laboratory/organizational.js
@@ -2,10 +2,50 @@
const Api = {
getOrganizational: "/organizational/list", // 鍥涚骇鏍�
+ getTableInitialization: "/organizational/table", // 琛ㄦ牸鏁版嵁鎺ュ彛
+ organizationalAdd: "/organizational/add", // 娣诲姞閮ㄩ棬
+ organizationalUpdate: "/organizational/add", // 淇敼閮ㄩ棬
+ organizationalDelete: "/organizational/delete", // 鍒犻櫎閮ㄩ棬
}
export function getOrganizationalApi() {
return request({
url: Api.getOrganizational,
method: 'get'
})
+}
+
+export function getTableInitializationApi(departmentId) {
+ return request({
+ url: Api.getTableInitialization,
+ method: 'get',
+ params: {
+ departmentId
+ }
+ })
+}
+
+export function organizationalAddApi(formData){
+ return request({
+ url: Api.organizationalAdd,
+ method: 'post',
+ data: formData
+ })
+}
+
+export function organizationalUpdateApi(formData){
+ return request({
+ url: Api.organizationalUpdate + '?id=' + formData.id,
+ method: 'put',
+ data: formData
+ })
+}
+
+export function organizationalDeleteApi(id){
+ return request({
+ url: Api.organizationalDelete,
+ method: 'delete',
+ params: {
+ ids: id.toString()
+ }
+ })
}
\ No newline at end of file
diff --git a/src/api/standardLibrary.js b/src/api/standardLibrary.js
index 09b57f9..2eb0e96 100644
--- a/src/api/standardLibrary.js
+++ b/src/api/standardLibrary.js
@@ -7,6 +7,24 @@
})
}
+//鑾峰彇鎵�鏈夌増鏈�
+export function getVersion(params){
+ return request({
+ url: '/product/chooseVersion',
+ method: 'get',
+ params
+ })
+}
+
+//娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰
+export function addVersion(params){
+ return request({
+ url: '/product/addVersion',
+ method: 'post',
+ params
+ })
+}
+
// 鑾峰彇鎵�鏈夐」鐩�
export function getProductList(params) {
return request({
diff --git a/src/api/util/requestUtil.js b/src/api/util/requestUtil.js
index 3055a2f..df22c02 100644
--- a/src/api/util/requestUtil.js
+++ b/src/api/util/requestUtil.js
@@ -16,6 +16,14 @@
})
}
+export function put(path, data) {
+ return request({
+ url: path,
+ method: 'put',
+ data
+ })
+}
+
export function wpost(path, params) {
return request({
url: path,
diff --git a/src/components/experiment/checkTheReport/index.vue b/src/components/experiment/checkTheReport/index.vue
new file mode 100644
index 0000000..72f4c28
--- /dev/null
+++ b/src/components/experiment/checkTheReport/index.vue
@@ -0,0 +1,126 @@
+<template>
+ <div class="preview-main">
+ <div class="logo">
+ <img :src="logoSrc" />
+ </div>
+ <div class="center">
+ <h1>鍘熸潗鏂欐娴嬫姤鍛�</h1>
+ <table>
+ <tr>
+ <td>鏉愭枡鍚嶇О</td>
+ <td colspan="5"></td>
+ </tr>
+ <tr>
+ <td>瑙勬牸鍨嬪彿</td>
+ <td colspan="2"></td>
+ <td>鏉愭枡鍘傚</td>
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td>鏉愭枡鎵瑰彿</td>
+ <td colspan="2"></td>
+ <td>妫�娴嬬紪鍙�</td>
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td>妫�娴嬩緷鎹�</td>
+ <td colspan="2"></td>
+ <td>妫�娴嬬被鍒�</td>
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td>搴忓彿</td>
+ <td>妫�楠岄」鐩�</td>
+ <td>鍗曚綅</td>
+ <td>鏍囧噯瑕佹眰</td>
+ <td>妫�娴嬬粨鏋�</td>
+ <td>鍗曢」鍒ゆ柇</td>
+ </tr>
+ <tr v-for="item in 15" :key="item">
+ <td>{{item}}</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td colspan="6">妫�楠岀粨璁猴細</td>
+ </tr>
+ <tr>
+ <td colspan="6">
+ 娉細鈥溾垰鈥濊〃绀鸿椤圭洰鍚堟牸锛屸�溍椻�濊〃绀鸿椤圭洰涓嶅悎鏍尖�溾�斺�濊〃绀鸿椤圭洰涓嶈姹傛娴嬨��
+ </td>
+ </tr>
+ </table>
+ <el-row class="date-group" :gutter="20">
+ <el-col :span="8">妫�娴嬨�佹棩鏈燂細<span>2023-08-25</span></el-col>
+ <el-col :span="8">瀹℃牳銆佹棩鏈燂細<span>2023-08-25</span></el-col>
+ <el-col :span="8">鎵瑰噯銆佹棩鏈燂細<span>2023-08-25</span></el-col>
+ </el-row>
+ <p class="footer">
+ <span>缂栧彿:</span><span>ZTT/ICSRCP18-003</span>
+ <span> 鍙戣鏃ユ湡:</span><span>2023-08-25</span>
+ <span> 鍙戣閮ㄩ棬:</span><span>璐ㄩ噺閮�</span>
+ <span> 淇濆瓨鏈熼檺:</span><span>闀挎湡</span>
+ </p>
+ </div>
+ </div>
+</template>
+<script>
+export default({
+ data() {
+ return {
+ logoSrc : require("@/assets/404_images/logo.png"),
+ }
+ }
+})
+</script>
+<style scoped lang="scss">
+ .preview-main{
+ margin: 0;
+ padding: 0;
+ width:90%;
+ margin-left: 5%;
+ .logo{
+ img{
+ width: 150px;
+ height: 60px;
+ }
+ }
+ .center{
+ width: 100%;
+ h1{
+ width:100%;
+ font-family: "寰蒋闆呴粦" !important;
+ text-align: center;
+ }
+ table{
+ width:100%;
+ height:100vh;
+ border-collapse: collapse;
+ font-size: 18px;
+ }
+ table,tr,th,td{
+ border: 2px solid black;
+ }
+ tr,td,th{
+ padding: 15px 20px;
+ }
+ .date-group .el-col{
+ text-align: center;
+ padding: 50px 0px;
+ font-size: 18px;
+ }
+ .footer{
+ margin: 0;
+ padding: 0;
+ width:90%;
+ margin-left: 5%;
+ color: gray;
+ text-align: center;
+ margin-top: 250px;
+ }
+ }
+ }
+</style>
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 3876bf3..dd146bb 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -24,7 +24,7 @@
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
- <el-dialog title="淇敼瀵嗙爜" :visible.sync="dialogFormVisible" :append-to-body="true">
+ <el-dialog title="淇敼瀵嗙爜" :visible.sync="dialogFormVisible" :append-to-body="true" width="40%">
<el-form :model="form">
<el-form-item label="鏃у瘑鐮�" :label-width="formLabelWidth">
<el-input v-model="form.oldPwd" autocomplete="off"></el-input>
diff --git a/src/main.js b/src/main.js
index 1eda87c..d578a57 100644
--- a/src/main.js
+++ b/src/main.js
@@ -20,6 +20,7 @@
import echarts from 'echarts'
Vue.prototype.$echarts = echarts
+import print from 'print-js'
import '@/icons' // icon
import '@/permission' // permission control
diff --git a/src/router/index.js b/src/router/index.js
index 25cd92c..6e2fc1e 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -437,7 +437,6 @@
{
path: 'message',
name: 'Message',
- // hidden: true,
component: () => import('@/views/message/message/index'),
// meta: { title: '鎴戠殑娑堟伅', icon: 'table' }
},
diff --git a/src/views/basicData/index.vue b/src/views/basicData/index.vue
index 952955e..e47537f 100644
--- a/src/views/basicData/index.vue
+++ b/src/views/basicData/index.vue
@@ -143,6 +143,7 @@
ref="multipleTable"
@select="selectTr"
@select-all="selectAll"
+ @selection-change="handleSelectionChange"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
<el-table-column type="selection" label="搴忓彿"> </el-table-column>
@@ -344,20 +345,6 @@
this.isAllSelect = !this.isAllSelect;
let data = this.tableData;
this.toggleSelect(data, this.isAllSelect, "all");
- // 鑷畾涔�
- if (this.isAllSelect) {
- val.forEach((i) => {
- if (i.id !== undefined) {
- this.deleteList.push(i.id);
- } else {
- i.children.forEach((c) => {
- this.deleteList.push(c.id);
- });
- }
- });
- } else {
- this.deleteList.splice(0, this.deleteList.length);
- }
},
//閫夋嫨鏌愯
selectTr(selection, row) {
@@ -366,33 +353,6 @@
this.isAllSelect = row.isChecked;
this.toggleSelect(row, row.isChecked, "tr");
});
-
- if (row.isChecked === true) {
- if (row.children !== undefined) {
- row.children.forEach((i) => {
- this.deleteList.push(i.id);
- });
- } else {
- this.deleteList.push(row.id);
- }
- } else if (row.isChecked === false) {
- if (row.children !== undefined) {
- row.children.forEach((i) => {
- this.deleteList.findIndex((c, index) => {
- if (c === i.id) {
- this.deleteList.splice(index, 1);
- return;
- }
- });
- });
- }
- this.deleteList.findIndex((c, index) => {
- if (c === row.id) {
- this.deleteList.splice(index, 1);
- return;
- }
- });
- }
},
//閫掑綊瀛愮骇
toggleSelect(data, flag, type) {
@@ -426,6 +386,15 @@
}
});
},
+ handleSelectionChange(val) {
+ this.deleteList = []
+ val.forEach((v) => {
+ if(v.id !== undefined) {
+ this.deleteList.push(v.id)
+ }
+ })
+ console.log(`output->this.deleteList`,this.deleteList)
+ },
// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫
deleteListClick() {
deleteListApi(this.deleteList).then((res) => {
diff --git a/src/views/chart/work/index.vue b/src/views/chart/work/index.vue
index e04f144..46e1da2 100644
--- a/src/views/chart/work/index.vue
+++ b/src/views/chart/work/index.vue
@@ -90,12 +90,7 @@
},
}
},
- mounted(){
- // this.initLeaderStatiChart("");
- this.initLeaderTimelyChart("leaderTimely");
- this.initTesterStatiChart("testerStati");
- this.initTesterTimelyChart("testerTimely");
- },
+ mounted(){},
methods: {
async queryData(){
let date = this.formInline.date;
@@ -182,7 +177,7 @@
series: [
{
name: '宸插畬鎴�',
- barWidth: '20%',
+ barWidth: '30%',
type: 'bar',
stack: 'one',
emphasis: emphasisStyle,
@@ -207,22 +202,25 @@
option && myChart.setOption(option);
},
initTesterStatiChart(id,executeMater){
- console.log("qqq----",executeMater);
var chartDom = document.getElementById(id);
var myChart = echarts.init(chartDom);
window.addEventListener('resize', function() {
myChart.resize();
});
var option;
-
+ let max = 0;
let xAxisData = [];
let data1 = [];
let data2 = [];
- // for(let i=0;i<executeMater.length;i++){
- // xAxisData.push(executeMater[i].name);
- // data1.push(executeMater[i].finsh);
- // data2.push(executeMater[i].unfinsh);
- // }
+ for(let i=0;i<executeMater.length;i++){
+ xAxisData.push(executeMater[i].name);
+ data1.push(executeMater[i].finsh);
+ data2.push(executeMater[i].unfinsh);
+ let sum = executeMater[i].finsh + executeMater[i].unfinsh;
+ if(sum > max){
+ max = sum;
+ }
+ }
var emphasisStyle = {
itemStyle: {
shadowBlur: 10,
@@ -244,8 +242,8 @@
},
yAxis: {
min: 0,
- max: 60,
- interval: 10,
+ max: max,
+ interval: 1,
},
grid: {
bottom: 100
@@ -255,6 +253,7 @@
name: '鏁版嵁1',
type: 'bar',
stack: 'one',
+ barWidth: '30%',
emphasis: emphasisStyle,
data: data1,
itemStyle:{
@@ -265,6 +264,7 @@
name: '鏁版嵁2',
type: 'bar',
stack: 'one',
+ barWidth: '30%',
emphasis: emphasisStyle,
data: data2,
itemStyle:{
@@ -282,6 +282,18 @@
myChart.resize();
});
var option;
+ let xAxisData = [];
+ let data1 = [];
+ let data2 = [];
+ let yAxisData1 = 0;
+ for(let i=0;i<dutyTimely.length;i++){
+ xAxisData.push(dutyTimely[i].name);
+ data1.push(dutyTimely[i].total);
+ data2.push(dutyTimely[i].timely);
+ if(dutyTimely[i].total > yAxisData1){
+ yAxisData1 = dutyTimely[i].total;
+ }
+ }
option = {
tooltip: {
trigger: 'axis',
@@ -299,13 +311,10 @@
{
name: '濮撳悕',
type: 'category',
- data: ['娌愮',],
+ data: xAxisData,
axisPointer: {
type: 'shadow'
},
- itemStyle: {
- top: '20px'
- }
}
],
yAxis: [
@@ -313,7 +322,7 @@
type: 'value',
name: '鏁伴噺',
min: 0,
- max: 10,
+ max: yAxisData1,
interval: 1,
axisLabel: {
formatter: '{value}'
@@ -334,13 +343,13 @@
{
name: '鏍峰搧鏁�',
type: 'bar',
- barWidth: '20%',
+ barWidth: '30%',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
- data: [4.0],
+ data: data1,
itemStyle: {
color: '#9fceff'
}
@@ -348,19 +357,19 @@
{
name: '瀹屾垚鍙婃椂鐜�',
type: 'line',
+ yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
return value + ' %';
}
},
- data: [7.5],
+ data: [{value:20},{value:40}],
itemStyle: {
color: '#d2eec5'
}
},
]
};
-
option && myChart.setOption(option);
},
initTesterTimelyChart(id,executeTimely){
@@ -370,6 +379,18 @@
myChart.resize();
});
var option;
+ let xAxisData = [];
+ let data1 = [];
+ let data2 = [];
+ let yAxisData1 = 0;
+ for(let i=0;i<executeTimely.length;i++){
+ xAxisData.push(executeTimely[i].name);
+ data1.push(executeTimely[i].total);
+ data2.push(executeTimely[i].timely);
+ if(executeTimely[i].total > yAxisData1){
+ yAxisData1 = executeTimely[i].total;
+ }
+ }
option = {
tooltip: {
trigger: 'axis',
@@ -387,7 +408,7 @@
xAxis: [
{
type: 'category',
- data: ["","",""],
+ data: xAxisData,
axisPointer: {
type: 'shadow'
}
@@ -398,8 +419,8 @@
type: 'value',
name: '',
min: 0,
- max: 50,
- interval: 5,
+ max: yAxisData1,
+ interval: 1,
axisLabel: {
formatter: '{value}'
}
@@ -419,12 +440,13 @@
{
name: '椤圭洰鏁�',
type: 'bar',
+ barWidth: '30%',
tooltip: {
valueFormatter: function (value) {
return value ;
}
},
- data: [2.0, 4.9, 7.0],
+ data: data1,
itemStyle: {
color: '#5087ec'
}
@@ -438,7 +460,7 @@
return value + ' %';
}
},
- data: [2.0, 2.2, 3.3],
+ data: data2,
itemStyle: {
color: '#68bbc4'
}
diff --git a/src/views/experiment/checkTheReport/index.vue b/src/views/experiment/checkTheReport/index.vue
index a127c10..171ca9d 100644
--- a/src/views/experiment/checkTheReport/index.vue
+++ b/src/views/experiment/checkTheReport/index.vue
@@ -51,6 +51,18 @@
>
</div>
</div>
+ <el-dialog
+ top="10vh"
+ title="鎶ュ憡棰勮"
+ :visible.sync="dialogVisible"
+ width="60%">
+ <span slot="footer" class="dialog-footer">
+ <el-button type="primary" size="small" @click="printFun()">鎵撳嵃</el-button>
+ </span>
+ <div class="printStyle">
+ <preview id="printDiv"></preview>
+ </div>
+ </el-dialog>
<div class="table-box">
<el-table
ref="reportTable"
@@ -143,10 +155,9 @@
<el-button
type="text"
size="small"
- @click="handleClick(scope.row)"
- >棰勮</el-button
+ @click="previewFun(scope.row)"
+ >鏌ョ湅鎶ュ憡</el-button
>
- <el-button type="text" size="small">鎵撳嵃</el-button>
</template>
</el-table-column>
</el-table>
@@ -169,6 +180,8 @@
<script>
import { selectAllReport } from "@/api/experiment/checkTheReport";
+import Preview from "@/components/experiment/checkTheReport/index.vue";
+import PrintJS from 'print-js'
export default {
data() {
return {
@@ -183,12 +196,33 @@
total: 0,
pageSize: 10,
checked: true,
+ dialogVisible: false,
};
},
created() {
this.getData();
},
+ mounted(){
+ // this.dialogVisible = true;
+ },
+ components:{
+ Preview
+ },
methods: {
+ //棰勮鎸夐挳
+ previewFun(){
+ this.dialogVisible = true;
+ },
+ //鎵撳嵃鎸夐挳
+ printFun(){
+ PrintJS({
+ printable: "printDiv",
+ type: "html",
+ // header: "鍘熸潗鏂欐娴嬫姤鍛�",
+ targetStyles: ["*"],
+ ignoreElements: ["no-ignore"],
+ });
+ },
// 鐘舵�佹寜閽�
handleRadioChange() {
this.getData();
@@ -227,6 +261,7 @@
};
const { data } = await selectAllReport(params);
this.reportTable = data.row;
+ console.log(data.row);
this.total = data.total;
},
},
@@ -280,5 +315,14 @@
margin: 10px 0;
}
}
+ .printStyle{
+ overflow: scroll;
+ height:600px;
+ .el-button{
+ position: absolute;
+ top: 10vh;
+ left: 90%;
+ }
+ }
}
</style>
diff --git a/src/views/experiment/inspectionApplication/Viewdetails/index.vue b/src/views/experiment/inspectionApplication/Viewdetails/index.vue
index a0919e6..e61c489 100644
--- a/src/views/experiment/inspectionApplication/Viewdetails/index.vue
+++ b/src/views/experiment/inspectionApplication/Viewdetails/index.vue
@@ -147,7 +147,6 @@
}
},
created(){
- console.log(this.$route.query.id);
this.uu = this.$route.query.id;
this.selectInspectsListById()
this.selectUser()
diff --git a/src/views/experiment/inspectionApplication/index.vue b/src/views/experiment/inspectionApplication/index.vue
index 3b08605..e6f5023 100644
--- a/src/views/experiment/inspectionApplication/index.vue
+++ b/src/views/experiment/inspectionApplication/index.vue
@@ -393,7 +393,7 @@
style="width: 100%; margin-bottom: 20px"
row-key="name"
border
-
+
default-expand-all
ref="multipleTable"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
@@ -449,7 +449,7 @@
<el-button @click="Standardframe = false">鍙� 娑�</el-button>
<el-button type="primary" @click="Standardframe = false">纭� 瀹�</el-button>
</span>
-
+
</el-dialog>
<!-- 鍘熸潗鏂欐楠屾ā鎬佹 -->
@@ -470,7 +470,7 @@
<el-table-column
type="selection"
min-width="10%"
- />
+ />
<el-table-column
type="index"
label="搴忓彿"
@@ -695,16 +695,7 @@
},
methods: {
async handleClick(row){
- // console.log(item);
- // const res = await ddd({goodId:id})
- // this.$message({
- // message: '鎭枩浣狅紝杩欐槸涓�鏉℃垚鍔熸秷鎭�',
- // type: 'success'
- // });
-
- // console.log(res);
this.inspectionTable = row;
- console.log(row.id);
this.id = row.id
this.$router.push({name:'Viewdetails',query: {id:row.id}});
this.selectInspectsList()
@@ -723,7 +714,7 @@
async getCommisionList() {
const res = await getCommisionList({pageNo:1,pageSize:10 })
console.log(res);
- this.commisionTable = res.data.row
+ this.commisionTable = res.data
},
//鍘熸潗鏂�
async selecYANcailisotAllAPI() {
@@ -763,7 +754,6 @@
item['checkdate'] = checkdate // 妫�楠屾棩鏈�
item['createTime'] = createTime // 鐧昏鏃ユ湡
})
- console.log('data:',data)
this.inspectionTable = data
if(this.searchData.type !== ''){
if(this.searchData.state !== ''){
@@ -807,40 +797,29 @@
this.rawmaterialVisible = false
},
handleRadioChange(){
- setTimeout(() => {
- if(this.type === 0){
- // 鍘熸潗鏂欐姤妫�
- this.rawmaterialVisible = true
- YANcailiso({pageNo:1,pageSize:10}).then(res=>{
- // var data = res.data
- // data.forEach((item)=>{
- // var checkdate = []
- // checkdate.push(item['createTime'])
- // checkdate.push(item['updateTime'])
- // item['checkdate'] = checkdate // 妫�楠屾棩鏈�
- // })
- this.rawMaterialTable = res.data.row
- })
-
- // this.infoForm = res.data
- // this.$router.push({ name: 'ReportForInspection' });
- }else if(this.type === 1){
- this.commisionVisible = true
- getCommisionList({pageNo:1,pageSize:10}).then(res=>{
- // console.log(res);
- this.commisionTable = res.data.row
- })
- // var data = res.data
- // data.forEach((item)=>{
- // var checkdate = []
- // checkdate.push(item['startTime'])
- // checkdate.push(item['endTime'])
- // item['checkdate_'] = item['startTime'] + '~' + item['endTime']
- // item['checkdate'] = checkdate // 妫�楠屾棩鏈�
- // })
-
- }
- }, 100);
+ setTimeout(()=>{
+ if(this.type === 0){
+ // 鍘熸潗鏂欐姤妫�
+ this.rawmaterialVisible = true
+ selectAll({type: this.type}).then(res=>{
+ var data = res.data
+ data.forEach((item)=>{
+ var checkdate = []
+ checkdate.push(item['createTime'])
+ checkdate.push(item['updateTime'])
+ item['checkdate'] = checkdate // 妫�楠屾棩鏈�
+ })
+ this.rawMaterialTable = res.data
+ })
+ // this.$router.push({ name: 'ReportForInspection' });
+ }else if(this.type === 1){
+ this.commisionVisible = true
+ getCnList({pageNo:1,pageSize:10}).then(res=>{
+ // consommisioole.log(res);
+ this.commisionTable = res.data.row
+ })
+ }
+ },100)
},
// 鏂板妫�楠�
async addInspection(){
@@ -913,7 +892,7 @@
this.BANben = res.data.row
console.log(this.BANben);
})
-
+
},
handleSelectionChange_0(val){
this.select_1 = []
diff --git a/src/views/laboratory/organizational/index.vue b/src/views/laboratory/organizational/index.vue
index b25fa6a..b44012b 100644
--- a/src/views/laboratory/organizational/index.vue
+++ b/src/views/laboratory/organizational/index.vue
@@ -23,9 +23,15 @@
type="primary"
size="small"
icon="el-icon-circle-plus-outline"
+ @click="dialogVisible = true"
>鏂板</el-button
>
- <el-button size="small" icon="el-icon-delete-solid">鍒犻櫎</el-button>
+ <el-button
+ size="small"
+ icon="el-icon-delete-solid"
+ @click="listDeleteClick"
+ >鍒犻櫎</el-button
+ >
</div>
</div>
<div class="table-main-div">
@@ -39,27 +45,84 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"> </el-table-column>
- <el-table-column label="鏃ユ湡" width="120">
- <template slot-scope="scope">{{ scope.row.date }}</template>
- </el-table-column>
- <el-table-column prop="name" label="濮撳悕" width="120">
- </el-table-column>
- <el-table-column prop="address" label="鍦板潃" show-overflow-tooltip>
+ <el-table-column
+ label="搴忓彿"
+ type="index"
+ width="70"
+ ></el-table-column>
+ <el-table-column prop="department" label="閮ㄩ棬"> </el-table-column>
+ <el-table-column label="鎿嶄綔">
+ <template scope="scope">
+ <el-button type="text" size="mini" @click="updateClick(scope)"
+ >缂栬緫</el-button
+ >
+ <el-button type="text" size="mini" @click="deleteClick(scope)"
+ >鍒犻櫎</el-button
+ >
+ </template>
</el-table-column>
</el-table>
</div>
</div>
+ <el-dialog
+ :title="isUpdate ? '鏇存柊閮ㄩ棬鍚嶇О' : '鏂板閮ㄩ棬'"
+ :visible.sync="dialogVisible"
+ width="30%"
+ >
+ <el-form
+ :model="formData"
+ :rules="rules"
+ ref="ruleForm"
+ class="elFormClass"
+ >
+ <el-form-item label="涓婄骇閮ㄩ棬锛�" prop="name" style="padding-left: 10px">
+ <el-input
+ v-model="treeNodeData.department"
+ :disabled="true"
+ style="width: 81.3%"
+ >
+ </el-input>
+ </el-form-item>
+ <el-form-item
+ label="閮ㄩ棬鍚嶇О锛�"
+ prop="department"
+ style="padding-top: 20px"
+ >
+ <el-input
+ placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�"
+ v-model="formData.department"
+ clearable
+ style="width: 80%"
+ >
+ </el-input>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="saveForm">{{
+ isUpdate ? "鏇� 鏂�" : "鏂� 澧�"
+ }}</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
<script>
-import { getOrganizationalApi } from "@/api/laboratory/organizational";
+import {
+ getOrganizationalApi,
+ getTableInitializationApi,
+ organizationalAddApi,
+ organizationalUpdateApi,
+ organizationalDeleteApi,
+} from "@/api/laboratory/organizational";
export default {
name: "Organizational",
data() {
return {
filterText: "",
+ dialogVisible: false,
msg: "",
+ isUpdate: false,
data: [],
// tree鏍戦粯璁ゅ�奸厤缃�
defaultProps: {
@@ -67,28 +130,24 @@
label: "department",
id: "id",
},
- tableData: [
- {
- date: "2016-05-02",
- name: "鐜嬪皬铏�",
- address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�",
- },
- {
- date: "2016-05-04",
- name: "鐜嬪皬铏�",
- address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�",
- },
- {
- date: "2016-05-01",
- name: "鐜嬪皬铏�",
- address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�",
- },
- {
- date: "2016-05-03",
- name: "鐜嬪皬铏�",
- address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�",
- },
- ],
+ formData: {
+ fatherId: "",
+ department: "",
+ },
+ // 鏂板鎸夐挳閲岄潰绂佹杈撳叆妗嗘暟鎹�
+ disabledInputShow: "",
+ // 淇濆瓨鐐瑰嚮鑺傜偣鏁版嵁
+ treeNodeData: {},
+ // 澶氶�夊垹闄�
+ listDelete: [],
+ // 琛ㄦ牸鏁版嵁
+ tableData: [],
+ rules: {
+ department: [
+ { required: true, message: "璇疯緭鍏ユ椿鍔ㄥ悕绉�", trigger: "blur" },
+ { min: 1, max: 25, message: "闀垮害鍦� 1 鍒� 5 涓瓧绗�", trigger: "blur" },
+ ],
+ },
};
},
methods: {
@@ -101,6 +160,13 @@
treeInitialization() {
getOrganizationalApi().then((res) => {
this.data = res.data;
+ // 鍒濆鍖栭粯璁sg鎻愮ず璺緞涓虹涓�鑺傜偣鍚嶇О
+ this.msg = res.data[0].department;
+ // 鍒濆鍖栬皟鐢ㄨ〃鏍兼帴鍙�
+ this.tableInitialization(res.data[0].id);
+ // 鍒濆鍖栦繚瀛樼涓�鑺傜偣鏁版嵁
+ this.treeNodeData.department = res.data[0].department;
+ this.treeNodeData.id = res.data[0].id;
});
},
// 鑾峰彇鏍戣矾寰�
@@ -115,10 +181,14 @@
// 鐐瑰嚮鏍戣妭鐐�
handleNodeClick(data, node, element) {
this.getParentData(node.parent, node.data.department);
- console.log(`output->this.msg`, this.msg);
- console.log(`output->data`, data);
- console.log(`output->node`, node);
- console.log(`output->element`, element);
+ // 鐢变簬鐐瑰嚮绗竴鑺傜偣鏃犳硶瑙﹀彂getParentData閲岄潰鐨勫垽鏂紝鍙兘棰濆鍒ゆ柇
+ if (node.data.id === 0) {
+ this.msg = node.data.department;
+ }
+ // 鐐瑰嚮鑺傜偣鏁版嵁瀛樺偍涓嬫潵
+ this.treeNodeData = node.data;
+ // 鐐瑰嚮瑙﹀彂璇ュ嚱鏁帮紝鏇存柊琛ㄦ牸鏁版嵁
+ this.tableInitialization(node.data.id);
},
// 鏀瑰彉澶氶�夋鐘舵��
toggleSelection(rows) {
@@ -132,7 +202,71 @@
},
// 鐐瑰嚮澶氶�夋浠ュ悗鐨勬搷浣�
handleSelectionChange(val) {
- this.multipleSelection = val;
+ this.listDelete = []
+ val.forEach((v) => {
+ this.listDelete.push(v.id);
+ });
+ },
+ // 鍒濆鍖栬〃鏍兼暟鎹�
+ tableInitialization(departmentId) {
+ getTableInitializationApi(departmentId).then((res) => {
+ this.tableData = res.data;
+ });
+ },
+ // 鏇存柊涓庢柊澧炶〃鍗�
+ saveForm() {
+ this.formData.fatherId = this.treeNodeData.id;
+ this.$refs.ruleForm.validate((valid) => {
+ if (valid) {
+ if (!this.isUpdate) {
+ organizationalAddApi(this.formData).then((res) => {
+ this.$message({
+ message: res.message,
+ type: "success",
+ });
+ this.treeInitialization();
+ this.dialogVisible = false;
+ });
+ } else {
+ organizationalUpdateApi(this.formData).then((res) => {
+ this.$message({
+ message: res.message,
+ type: "success",
+ });
+ this.treeInitialization();
+ this.dialogVisible = false;
+ });
+ }
+ }
+ });
+ },
+ // 鐐瑰嚮缂栬緫瑙﹀彂
+ updateClick(scope) {
+ this.dialogVisible = true;
+ this.isUpdate = true;
+ this.formData.id = scope.row.id;
+ this.formData.fatherId = this.treeNodeData.id;
+ this.formData.department = scope.row.department;
+ },
+ // 琛ㄦ牸涓殑鍒犻櫎鎸夐挳
+ deleteClick(scope) {
+ organizationalDeleteApi(scope.row.id).then((res) => {
+ this.$message({
+ message: res.message,
+ type: "success",
+ });
+ this.treeInitialization();
+ });
+ },
+ // 澶撮儴澶氶�夊垹闄�
+ listDeleteClick() {
+ organizationalDeleteApi(this.listDelete).then((res) => {
+ this.$message({
+ message: res.message,
+ type: "success",
+ });
+ this.treeInitialization();
+ });
},
},
mounted() {
@@ -141,6 +275,15 @@
watch: {
filterText(val) {
this.$refs.tree.filter(val);
+ },
+ dialogVisible: {
+ handler(newVal, oldVal) {
+ if (newVal == false) {
+ this.isUpdate = false;
+ this.formData = {};
+ this.$refs.ruleForm.resetFields();
+ }
+ },
},
},
};
@@ -187,4 +330,7 @@
font-weight: 500;
color: #999999;
}
+.elFormClass .el-form-item__error {
+ padding-left: 90px;
+}
</style>
diff --git a/src/views/laboratory/personnel/index.vue b/src/views/laboratory/personnel/index.vue
index 26998b3..4259f2f 100644
--- a/src/views/laboratory/personnel/index.vue
+++ b/src/views/laboratory/personnel/index.vue
@@ -1,5 +1,5 @@
<template>
- <div class="personnel-main ">
+ <div class="personnel-main">
<div class="page-header-search">
<div class="search-bar">
<el-form ref="form" :inline="true">
@@ -10,74 +10,197 @@
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getData()">鏌ヨ</el-button>
- <el-button type="primary" plain @click="resetData()">閲嶇疆</el-button>
+ <el-button type="primary" plain @click="resetData()"
+ >閲嶇疆</el-button
+ >
<!-- <el-button type="text">楂樼骇鎼滅储<i class="el-icon-arrow-down el-icon--right" /></el-button> -->
</el-form-item>
</el-form>
</div>
<div class="serve-btn">
- <el-button type="primary" icon="el-icon-plus" @click="dialogFormVisible = true">鏂板浜哄憳</el-button>
+ <el-button
+ type="primary"
+ icon="el-icon-plus"
+ @click="dialogFormVisible = true"
+ >鏂板浜哄憳</el-button
+ >
- <el-dialog title="鏂板浜哄憳" :visible.sync="dialogFormVisible" width="30%">
- <el-form :model="form" :rules="rules">
- <el-form-item label="璐﹀彿" :label-width="formLabelWidth" prop="account">
- <el-input v-model="form.account" autocomplete="off" />
+ <el-dialog
+ :title="isUpdate == true ? '鏇存柊浜哄憳淇℃伅' : '鏂板浜哄憳'"
+ :visible.sync="dialogFormVisible"
+ width="30%"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item
+ label="璐﹀彿"
+ :label-width="formLabelWidth"
+ prop="account"
+ >
+ <el-input v-model="form.account" />
</el-form-item>
<el-form-item label="骞撮緞" :label-width="formLabelWidth">
- <el-input v-model="form.age" autocomplete="off" />
+ <el-input v-model="form.age" />
</el-form-item>
- <el-form-item label="閭" :label-width="formLabelWidth" prop="email">
- <el-input v-model="form.email" autocomplete="off" />
+ <el-form-item
+ label="閭"
+ :label-width="formLabelWidth"
+ prop="email"
+ >
+ <el-input v-model="form.email" />
</el-form-item>
- <el-form-item label="鍚嶅瓧" :label-width="formLabelWidth" prop="name">
- <el-input v-model="form.name" autocomplete="off" />
+ <el-form-item
+ label="鍚嶅瓧"
+ :label-width="formLabelWidth"
+ prop="name"
+ >
+ <el-input v-model="form.name" />
</el-form-item>
- <el-form-item label="鐢佃瘽" :label-width="formLabelWidth" prop="phone">
- <el-input v-model="form.phone" autocomplete="off" />
+ <el-form-item
+ label="鐢佃瘽"
+ :label-width="formLabelWidth"
+ prop="phone"
+ >
+ <el-input v-model="form.phone" />
</el-form-item>
- <el-form-item label="鏉冮檺" :label-width="formLabelWidth" prop="role_id">
- <el-input v-model="form.role_id" autocomplete="off" />
+ <el-form-item
+ label="閮ㄩ棬"
+ :label-width="formLabelWidth"
+ required
+ prop="organizationId"
+ >
+ <el-cascader
+ style="width: 100%"
+ :options="options"
+ :props="myProp"
+ v-model="form.organizationId"
+ clearable
+ ></el-cascader>
+ </el-form-item>
+
+ <el-form-item
+ label="鏉冮檺"
+ :label-width="formLabelWidth"
+ prop="roleId"
+ >
+ <el-select
+ v-model="form.roleId"
+ clearable
+ style="100%"
+ placeholder="璇烽�夋嫨鏉冮檺"
+ >
+ <el-option
+ v-for="item in roleList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="submitForm()">纭� 瀹�</el-button>
+ <el-button type="primary" @click="submitForm()">{{
+ isUpdate == true ? "鏇� 鏂�" : "纭� 瀹�"
+ }}</el-button>
</div>
</el-dialog>
</div>
</div>
<div class="content-main">
<div class="personner-table">
- <el-table ref="personnerlTable" :max-height="700" :cell-style="{ textAlign: 'center' }"
- :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
- :data="personnerlTable" style="width: 100%">
+ <el-table
+ ref="personnerlTable"
+ height="calc(100vh - 240px)"
+ border
+ :cell-style="{ textAlign: 'center' }"
+ :header-cell-style="{
+ border: '0px',
+ background: '#f5f7fa',
+ color: '#606266',
+ boxShadow: 'inset 0 1px 0 #ebeef5',
+ textAlign: 'center',
+ }"
+ @filter-change="fnFilterChangeInit"
+ :data="personnerlTable"
+ style="width: 100%"
+ >
<el-table-column prop="username" label="瑙掕壊鍚嶇О" min-width="120" />
<el-table-column prop="roleName" label="瑙掕壊鏉冮檺" min-width="120" />
- <el-table-column prop="age" label="骞撮緞" min-width="150" />
+ <el-table-column prop="age" label="骞撮緞" min-width="150">
+ <template scope="scope">
+ {{
+ scope.row.age === "" ||
+ scope.row.age === null ||
+ scope.row.age == undefined
+ ? "---"
+ : scope.row.age
+ }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="department" label="閮ㄩ棬" min-width="150" />
<el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="180" />
- <el-table-column prop="phone" label="鐢佃瘽" min-width="200" />
- <el-table-column prop="email" label="閭" min-width="200" />
- <el-table-column prop="jobState" label="鍦ㄨ亴鐘舵��" min-width="120"
- :filters="[{ text: 0, value: 0 }, { text: 1, value: 1 }]" :filter-method="filterTag"
- filter-placement="bottom-end">
+ <el-table-column prop="phone" label="鐢佃瘽" min-width="200">
+ <template scope="scope">
+ {{
+ scope.row.phone === "" || scope.row.phone === undefined
+ ? "---"
+ : scope.row.phone
+ }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="email" label="閭" min-width="200">
+ <template scope="scope">
+ {{
+ scope.row.email === "" || scope.row.email === undefined
+ ? "---"
+ : scope.row.email
+ }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="jobState"
+ label="鍦ㄨ亴鐘舵��"
+ min-width="120"
+ :filters="[
+ { text: '鍦ㄨ亴', value: 1 },
+ { text: '绂诲矖', value: 0 },
+ ]"
+ column-key="status"
+ :filter-method="filterTag"
+ filter-placement="bottom-end"
+ >
<template slot-scope="scope">
- <el-tag :type="scope.row.jobState === 0 ? 'danger' : 'success'" disable-transitions>{{
- scope.row.jobState === 0 ? '绂诲矖' : '鍦ㄨ亴' }}</el-tag>
+ <el-tag
+ :type="scope.row.jobState === 0 ? 'danger' : 'success'"
+ disable-transitions
+ >{{ scope.row.jobState === 0 ? "绂诲矖" : "鍦ㄨ亴" }}</el-tag
+ >
</template>
</el-table-column>
<el-table-column label="鎿嶄綔" min-width="120">
<template slot-scope="scope">
- <el-button type="text" size="small" @click="handleClick(scope.row)">缂栬緫</el-button>
- <!-- <el-button type="text" size="small">缂栬緫</el-button> -->
+ <el-button
+ type="text"
+ size="small"
+ @click="handleClick(scope.row)"
+ >缂栬緫</el-button
+ >
</template>
</el-table-column>
</el-table>
<div>
<!-- 鍒嗛〉鍣� -->
- <el-pagination :current-page="currentPage" :page-sizes="[100, 200, 300, 400]" :page-size="pageSize"
- layout="total, sizes, prev, pager, next, jumper" :total="this.personnerlTable.length"
- @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+ <el-pagination
+ :current-page="currentPage"
+ :page-sizes="[10, 15, 20, 25]"
+ :page-size="pageSize"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
</div>
</div>
</div>
@@ -85,15 +208,15 @@
</template>
<script>
-import { get, post } from '@/api/util/requestUtil';
-import urlInfo from '../../../api/urlEnum/personnel.js'
+import { get, post, put } from "@/api/util/requestUtil";
+import urlInfo from "../../../api/urlEnum/personnel.js";
+import { getOrganizationalApi } from "@/api/laboratory/organizational";
export default {
data() {
return {
- keyword: '',
- personnerlTable: [
-
- ],
+ keyword: "",
+ roleList: "",
+ personnerlTable: [],
filteredpersonnerlTable: [],
currentindex: 1,
currentPage: 1, // 褰撳墠椤电爜
@@ -102,108 +225,224 @@
personData: [], // 鐢ㄦ潵瀛樻斁鎺ュ彛浼犺繃鏉ョ殑浜哄憳鍒楄〃鏁版嵁
dialogFormVisible: false,
form: {
- account: '',
- age: '',
- email: '',
- name: '',
- phone: '',
- role_id: ''
+ account: "",
+ age: "",
+ email: "",
+ name: "",
+ phone: "",
+ organizationId: "",
+ roleId: "",
},
- formLabelWidth: '100px',
+ myProp: {
+ value: "id",
+ label: "department",
+ checkStrictly: true, //鍏佽閫夋嫨浠绘剰涓�鑺�
+ },
+ formLabelWidth: "100px",
rules: {
account: [
{
- required: true, message: '璇疯緭鍏ヨ处鍙�', trigger: 'blur'
- }
+ required: true,
+ message: "璇疯緭鍏ヨ处鍙�",
+ trigger: "blur",
+ },
],
- name: [{
- required: true, message: '璇疯緭鍏ュ悕瀛�', trigger: 'blur'
- }],
+ name: [
+ {
+ required: true,
+ message: "璇疯緭鍏ュ悕瀛�",
+ trigger: "blur",
+ },
+ ],
phone: [
// { required: true, message: '璇疯緭鍏�11浣嶇數璇濆彿鐮�', trigger: 'blur' },
- { pattern: /^1[34578]\d{9}$/, message: '闈炴硶鎵嬫満鍙风爜', trigger: 'blur' }
+ {
+ pattern: /^1[3456789]\d{9}$/,
+ message: "闈炴硶鎵嬫満鍙风爜",
+ trigger: ["blur", "change"],
+ },
],
email: [
// { required: true, message: '璇疯緭鍏ラ偖绠卞湴鍧�', trigger: 'blur' },
- { type: 'email', message: '闈炴硶閭鍦板潃', trigger: ['blur', 'change'] }
+ {
+ type: "email",
+ message: "闈炴硶閭鍦板潃",
+ trigger: ["blur", "change"],
+ },
],
- role_id: [
- { required: true, message: '璇疯緭鍏ユ潈闄�(0鎴�1)', trigger: 'blur' }
-
- ]
- }
- }
+ organizationId: [
+ {
+ required: true,
+ type: "array",
+ message: "璇烽�夋嫨閮ㄩ棬",
+ trigger: "change",
+ },
+ ],
+ roleId: [
+ { required: true, message: "璇疯緭鍏ユ潈闄�(0鎴�1)", trigger: "blur" },
+ ],
+ },
+ options: [],
+ status: "",
+ isUpdate: false,
+ };
},
mounted() {
- this.getData()
+ this.getData();
+ this.getTreeData();
},
methods: {
// 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
handleSizeChange(val) {
- console.log(`姣忛〉 ${val} 鏉)
- this.currentPage = 1
- this.pageSize = val
+ console.log(`姣忛〉 ${val} 鏉);
+ this.currentPage = 1;
+ this.pageSize = val;
},
- filterTag() {
- console.log(11);
+ filterTag(value) {
+ this.status = "";
+ this.status = value;
+ return true;
},
// 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
handleCurrentChange(val) {
- console.log(`褰撳墠椤�: ${val}`)
- this.currentPage = val
+ console.log(`褰撳墠椤�: ${val}`);
+ this.currentPage = val;
},
async getData() {
let data = {
pageNo: 0,
- pageSize: 20,
- name: this.keyword
- }
+ pageSize: 10,
+ name: this.keyword,
+ status: this.status,
+ };
let res = await get(urlInfo.url.list_new_personnel, data);
- this.personnerlTable=res.data.row
- this.total=res.data.total
+ this.personnerlTable = res.data.row;
+ this.total = res.data.total;
},
searchData() {
this.filteredpersonnerlTable = this.personnerlTable.filter((item) => {
- return item.username === this.keyword
- }
- )
- this.personnerlTable = this.filteredpersonnerlTable
+ return item.username === this.keyword;
+ });
+ this.personnerlTable = this.filteredpersonnerlTable;
},
resetData() {
- // console.log("111111")
- this.personnerlTable = this.personData
- this.keyword = ''
+ this.personnerlTable = this.personData;
+ this.keyword = "";
+ this.status = "";
+ this.getData();
},
// 鎻愪氦鏂板浜哄憳琛ㄥ崟
submitForm() {
- // Handle form submission here
- // console.log(this.form);
- // POST璇锋眰
this.$refs.form.validate((valid) => {
if (valid) {
- this.dialogFormVisible = false
- axios.post('/user/add_new_personnel', this.form)
- .then(response => {
- console.log(response)
- // this.dialogVisible = false;
- })
- .catch(error => {
- console.error(error)
- })
+ let departmentId = this.form.organizationId;
+ this.form.organizationId = departmentId[departmentId.length - 1];
+ if (!this.isUpdate) {
+ post("/user/add_new_personnel", this.form).then((response) => {
+ this.$message({
+ message: response.message,
+ type: "success",
+ });
+ this.dialogFormVisible = false;
+ this.getData();
+ });
+ } else {
+ put("/user/update_new_personnel", this.form).then((res) => {
+ this.$message({
+ message: res.message,
+ type: "success",
+ });
+ this.dialogFormVisible = false;
+ this.getData();
+ });
+ }
} else {
- console.log('error submit!!')
- return false
+ console.log("error submit!!");
+ return false;
}
- })
+ });
},
- }
+ // 娓呯┖Cascader绌虹櫧
+ clearCascaderBlank(list) {
+ list.forEach((i) => {
+ if (i.children.length === 0) {
+ i.children = undefined;
+ } else {
+ this.clearCascaderBlank(i.children);
+ }
+ });
+ },
+ fnFilterChangeInit() {
+ this.personData = [];
+ this.getData();
+ },
+ /*
+ * @param list 鏁版嵁鍒楄〃
+ * @param id 鍚庣杩斿洖鐨刬d
+ **/
+ getParentsById(list, id) {
+ for (let i in list) {
+ if (list[i].id == id) {
+ return [list[i].id];
+ }
+ if (list[i].children) {
+ let node = this.getParentsById(list[i].children, id);
+ if (node !== undefined) {
+ //鏌ヨ鍒版妸鐖惰妭鎶婄埗鑺傜偣鍔犲埌鏁扮粍鍓嶉潰
+ node.unshift(list[i].id);
+ return node;
+ }
+ }
+ }
+ },
-}
+ handleClick(row) {
+ this.isUpdate = true;
+ this.dialogFormVisible = true;
+ this.form.name = row.username;
+ this.form.roleName = row.roleName;
+ this.form.phone = row.phone;
+ this.form.id = row.id;
+ this.form.email = row.email;
+ this.form.organizationId = this.getParentsById(
+ this.options,
+ row.departmentId
+ );
+ this.form.roleId = row.roleName;
+ this.form.age = row.age;
+ this.form.account = row.account;
+ },
+ getTreeData() {
+ getOrganizationalApi().then((res) => {
+ this.options = res.data[0].children;
+ this.clearCascaderBlank(this.options);
+ });
+ },
+ getRoleList() {
+ get("/user/list").then((res) => {
+ console.log(`output->res`, res);
+ this.roleList = res.data;
+ });
+ },
+ },
+ watch: {
+ dialogFormVisible: {
+ handler(newVal, oldVal) {
+ if (newVal == false) {
+ this.isUpdate = false;
+ this.form = {};
+ this.$refs.form.resetFields();
+ } else {
+ this.getRoleList();
+ }
+ },
+ },
+ },
+};
</script>
<style lang="scss" scoped>
.personnel-main {
-
// width: 100%;
// height: 100%;
.page-header-search {
@@ -229,7 +468,7 @@
background: #fff;
padding: 20px 20px 10px 20px;
- >div:nth-child(2) {
+ > div:nth-child(2) {
display: flex;
justify-content: end;
margin: 10px 0;
diff --git a/src/views/standardLibrary/index.vue b/src/views/standardLibrary/index.vue
index 6070828..5c69021 100644
--- a/src/views/standardLibrary/index.vue
+++ b/src/views/standardLibrary/index.vue
@@ -25,6 +25,16 @@
<div class="table-header">
<div class="serve-btn">
<span class="tipMsg">{{ msg !== "" ? msg : "" }}</span>
+ <el-select v-model="versionValue" @change="changeSelect" placeholder="璇烽�夋嫨鐗堟湰鍙�">
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ <el-button type="primary" @click="addVersionFun">鏂板鐗堟湰鍙�</el-button>
<el-button
type="primary"
icon="el-icon-plus"
@@ -44,13 +54,14 @@
<el-table
:data="tableData"
style="width: 100%; margin-bottom: 20px"
- row-key="name"
+ row-key="id"
border
height="calc(100vh - 250px)"
default-expand-all
ref="multipleTable"
@select="selectTr"
@select-all="selectAll"
+ @selection-change="handleSelectionChange"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
<el-table-column type="selection" label="搴忓彿"> </el-table-column>
@@ -160,12 +171,16 @@
addSpecifications,
deleteListApi,
blurUpdateApi,
+ getVersion,
+ addVersion
} from "@/api/standardLibrary";
import { selectproductModelApi } from "@/api/basicData/index";
export default {
data() {
return {
+ options:[],
+ versionValue: '',
deleteList: [],
msg: "",
isAllSelect: false,
@@ -198,7 +213,48 @@
created() {
this.getStandardTree();
},
+ mounted(){
+
+ },
methods: {
+ async initSelect(){
+ this.options = [];
+ this.versionValue = "";
+ const response = await getVersion({"specificationsId":this.selectData.id});
+ if(response.code===200 && response.data.length>0){
+ this.getTableByClick(this.selectData,response.data[0])
+ for(let i=0;i<response.data.length;i++){
+ this.options.push({
+ value: response.data[i],
+ label: "V" + response.data[i]
+ })
+ this.versionValue = response.data[0];
+ }
+ }
+ },
+ changeSelect(){
+ this.tableData = [];
+ this.getTableByClick(this.selectData,this.versionValue);
+ },
+ async insertVersion(){
+ const resp = await addVersion({"specificationsId":this.selectData.id});
+ if(resp.code===200){
+ this.initSelect();
+ this.$message({
+ type: 'success',
+ message: resp.message
+ });
+ }
+ },
+ addVersionFun() {
+ this.$confirm('纭娣诲姞鏂扮殑鐗堟湰鍙峰悧?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.insertVersion();
+ }).catch(() => {});
+ },
filterNode(value, data) {
if (!value) return true;
return data.name.indexOf(value) !== -1;
@@ -252,7 +308,8 @@
this.getParentData(node.parent, node.data.name);
// 瀛樹笅閫変腑鑺傜偣
this.selectData = data;
- this.getTableByClick(data);
+ this.getTableByClick(data,this.versionValue);
+ this.initSelect();
}
if (!("children" in data)) {
return;
@@ -267,9 +324,10 @@
this.getParentData(node.parent, this.msg);
}
},
- async getTableByClick(data) {
+ async getTableByClick(data,versionVal) {
await getProductList({
specificationsId: data.id,
+ version: versionVal
}).then((res) => {
res.data.forEach((i) => {
if (i.name === undefined) {
@@ -345,13 +403,12 @@
this.$message.error("娣诲姞澶辫触");
}
- console.log(res);
this.$message.success("娣诲姞鎴愬姛");
this.addTreeForm = {
addTypeArr: [],
};
this.getStandardTree();
- this.getTableByClick(this.selectData);
+ this.getTableByClick(this.selectData,this.versionValue);
},
changeCascader(data) {
this.addTreeForm.addTypeArr = data;
@@ -400,20 +457,6 @@
this.isAllSelect = !this.isAllSelect;
let data = this.tableData;
this.toggleSelect(data, this.isAllSelect, "all");
- // 鑷畾涔�
- if (this.isAllSelect) {
- val.forEach((i) => {
- if (i.id !== undefined) {
- this.deleteList.push(i.id);
- } else {
- i.children.forEach((c) => {
- this.deleteList.push(c.id);
- });
- }
- });
- } else {
- this.deleteList.splice(0, this.deleteList.length);
- }
},
//閫夋嫨鏌愯
selectTr(selection, row) {
@@ -422,33 +465,6 @@
this.isAllSelect = row.isChecked;
this.toggleSelect(row, row.isChecked, "tr");
});
-
- if (row.isChecked === true) {
- if (row.children !== undefined) {
- row.children.forEach((i) => {
- this.deleteList.push(i.id);
- });
- } else {
- this.deleteList.push(row.id);
- }
- } else if (row.isChecked === false) {
- if (row.children !== undefined) {
- row.children.forEach((i) => {
- this.deleteList.findIndex((c, index) => {
- if (c === i.id) {
- this.deleteList.splice(index, 1);
- return;
- }
- });
- });
- }
- this.deleteList.findIndex((c, index) => {
- if (c === row.id) {
- this.deleteList.splice(index, 1);
- return;
- }
- });
- }
},
//閫掑綊瀛愮骇
toggleSelect(data, flag, type) {
@@ -482,6 +498,15 @@
}
});
},
+ handleSelectionChange(val) {
+ this.deleteList = []
+ val.forEach((v) => {
+ if(v.id !== undefined){
+ this.deleteList.push(v.id)
+ }
+ })
+ console.log(`output->this.deleteList`,this.deleteList)
+ },
// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫
deleteListClick() {
deleteListApi(this.deleteList).then((res) => {
@@ -489,7 +514,7 @@
message: res.message,
type: "success",
});
- this.getTableByClick(this.selectData);
+ this.getTableByClick(this.selectData,this.versionValue);
});
},
async requiredOnfocus(scope) {
@@ -504,7 +529,7 @@
message: res.message,
type: "success",
});
- this.getTableByClick(this.selectData);
+ this.getTableByClick(this.selectData,this.versionValue);
});
},
},
@@ -640,6 +665,9 @@
width: 100%;
padding-bottom: 6px;
text-align: right;
+ .el-select{
+ margin-right:10px;
+ }
}
.tipMsg {
float: left;
--
Gitblit v1.9.3