From 312b055ee75a14d90201e9de9024927de49d7d8b Mon Sep 17 00:00:00 2001
From: “zhuo” <“zhuo@itcast.cn”>
Date: 星期四, 10 八月 2023 18:00:38 +0800
Subject: [PATCH] 8.10
---
.env.staging | 2
.env.development | 2
src/views/experiment/reportAuditing/index.vue | 2
src/api/CNAS/reviewAnnualPlan.js | 19 ++
.env.production | 2
src/views/experiment/checkTheReport/index.vue | 3
src/views/CNAS/reviewAnnualPlan/index.vue | 277 +++++++++++++++++++++++++++++++++++++++
src/views/experiment/planAssignments/index.vue | 87 +++++++++---
8 files changed, 364 insertions(+), 30 deletions(-)
diff --git a/.env.development b/.env.development
index e363056..e5e7b7a 100644
--- a/.env.development
+++ b/.env.development
@@ -2,4 +2,4 @@
ENV = 'development'
# base api
-VUE_APP_BASE_API = 'http://192.168.110.254:1234/'
+VUE_APP_BASE_API = 'http://localhost:1234/'
diff --git a/.env.production b/.env.production
index 64b7d95..dd72fa5 100644
--- a/.env.production
+++ b/.env.production
@@ -3,5 +3,5 @@
# base api
# VUE_APP_BASE_API = '/prod-api'
-VUE_APP_BASE_API = 'http://192.168.110.254:1234/'
+VUE_APP_BASE_API = 'http://localhost:1234/'
diff --git a/.env.staging b/.env.staging
index 4b2b496..92fbe73 100644
--- a/.env.staging
+++ b/.env.staging
@@ -5,6 +5,6 @@
# base api
# VUE_APP_BASE_API = '/stage-api'
-VUE_APP_BASE_API = 'http://192.168.110.254:1234/'
+VUE_APP_BASE_API = 'http://localhost:1234/'
diff --git a/src/api/CNAS/reviewAnnualPlan.js b/src/api/CNAS/reviewAnnualPlan.js
new file mode 100644
index 0000000..b483e1e
--- /dev/null
+++ b/src/api/CNAS/reviewAnnualPlan.js
@@ -0,0 +1,19 @@
+import request from '@/utils/request'
+
+//鏌ヨ瀹℃煡璁″垝
+export function selectAllList(params) {
+ return request({
+ url: '/cnasAnnualPlan/selectAllList',
+ method: 'get',
+ params
+ })
+}
+
+//鏂板瀹℃煡璁″垝
+export function addCnasAnnualPlan(data) {
+ return request({
+ url: '/cnasAnnualPlan/addCnasAnnualPlan',
+ method: 'post',
+ data
+ })
+ }
diff --git a/src/views/CNAS/reviewAnnualPlan/index.vue b/src/views/CNAS/reviewAnnualPlan/index.vue
index 183ba06..9b26139 100644
--- a/src/views/CNAS/reviewAnnualPlan/index.vue
+++ b/src/views/CNAS/reviewAnnualPlan/index.vue
@@ -1,5 +1,278 @@
<template>
- <div>
- 瀹℃牳骞村害璁″垝
+ <div class="content-main">
+ <div class="top-bar">
+ <el-form ref="form" :inline="true">
+ <el-form-item>
+ <el-date-picker
+ v-model="input"
+ type="date"
+ placeholder="璇烽�夋嫨鏌ヨ鏃ユ湡"
+ >
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="getData()">鏌ヨ</el-button>
+ <el-button type="primary" plain @click="resetData()">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ <el-form>
+ <!-- 涓婁紶闄勪欢 -->
+ <el-button
+ class="rightBtn"
+ type="primary"
+ icon="el-icon-upload2"
+ @click="dialogFormVisible1 = true"
+ >涓婁紶闄勪欢</el-button
+ >
+
+ <el-dialog title="鏂板璁″垝" :visible.sync="dialogFormVisible1">
+ <el-form :model="uploadingForm">
+ <el-form-item label="瀹℃牳鏃ユ湡:" :label-width="formLabelWidth">
+ <el-date-picker
+ v-model="uploadingForm.auditTime"
+ type="date"
+ placeholder="璇烽�夋嫨鏃ユ湡"
+ autocomplete="off"
+ >
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item label="褰曞叆浜�:" :label-width="formLabelWidth">
+ <el-input
+ v-model="uploadingForm.keyboarder"
+ autocomplete="off"
+ placeholder="璇疯緭鍏ュ綍鍏ヤ汉"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="涓婁紶闄勪欢:" :label-width="formLabelWidth">
+ <el-input
+ v-model="uploadingForm.attachment"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="dialogFormVisible1 = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="dialogFormVisible1 = false"
+ >纭� 瀹�</el-button
+ >
+ </div>
+ </el-dialog>
+
+ <!-- 涓婁紶璁″垝 -->
+ <el-button
+ class="rightBtn"
+ type="primary"
+ icon="el-icon-document-add"
+ @click="addPlan"
+ >鏂板璁″垝</el-button
+ >
+ <el-button
+ class="rightBtn"
+ type="primary"
+ icon="el-icon-document-checked"
+ >瀵煎嚭骞村害璁″垝</el-button
+ >
+ <el-button
+ class="rightBtn"
+ type="primary"
+ icon="el-icon-document-checked"
+ >瀵煎嚭鍐呴儴瀹炴柦璁″垝</el-button
+ >
+ </el-form>
</div>
+ <div class="library-table">
+ <div class="table-box">
+ <el-table
+ ref="auditTable"
+ border
+ :max-height="800"
+ :cell-style="{ textAlign: 'center' }"
+ :header-cell-style="{
+ border: '0px',
+ background: '#f5f7fa',
+ color: '#606266',
+ boxShadow: 'inset 0 1px 0 #ebeef5',
+ textAlign: 'center',
+ }"
+ :data="auditTable"
+ style="width: 100%"
+ >
+ <el-table-column type="index" label="搴忓彿" min-width="30px">
+ <template>
+ <el-checkbox type="checkbox" />
+ </template>
+ </el-table-column>
+ <el-table-column prop="year" label="骞村害" min-width="60px" />
+ <el-table-column prop="month" label="鏈堝害" min-width="60px" />
+ <el-table-column prop="planTime" label="璁″垝鏃堕棿" min-width="100px" />
+ <el-table-column prop="auditType" label="鎬ц川" min-width="80px">
+ <template slot-scope="scope">
+ <span>
+ {{ scope.row.auditType == 0 ? "鍐呭" : "绠$悊璇勫" }}
+ </span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="department" label="閮ㄩ棬" min-width="80px" />
+ <el-table-column
+ prop="auditLeader"
+ label="瀹℃牳缁勯暱"
+ min-width="80px"
+ />
+ <el-table-column prop="auditEmp" label="缁勫憳" min-width="80px" />
+ <el-table-column
+ prop="auditPurpose"
+ label="瀹℃牳鐩殑"
+ min-width="100px"
+ />
+ <el-table-column
+ prop="auditScope"
+ label="瀹℃牳鑼冨洿"
+ min-width="100px"
+ />
+ <el-table-column
+ prop="auditPursuant"
+ label="瀹℃牳渚濇嵁"
+ min-width="100px"
+ />
+ <el-table-column prop="writeUser" label="缂栧埗浜�" min-width="80px" />
+ <el-table-column prop="createTime" label="缂栧埗鏃ユ湡" min-width="100px">
+ </el-table-column>
+ <el-table-column prop="keyboarder" label="褰曞叆浜�" min-width="80px" />
+ <el-table-column prop="checker" label="妫�楠屼汉" min-width="80px" />
+ <el-table-column
+ prop="auditTime"
+ label="瀹℃牳鏃ユ湡"
+ min-width="100px"
+ />
+ <el-table-column prop="count" label="涓嶇鍚堥」鐩暟" min-width="60px" />
+ <el-table-column prop="auditState" label="鐘舵��" min-width="100px">
+ <template slot-scope="scope">
+ <div v-if="scope.row.auditState === 0">
+ <el-tag class="tag-item" type="warning">鍗冲皢寮�濮�</el-tag>
+ </div>
+ <div v-else-if="scope.row.auditState === 1">
+ <el-tag class="tag-item" type="success">瀹屾垚</el-tag>
+ </div>
+ <div v-else>
+ <el-tag class="tag-item" type="danger">閫炬湡</el-tag>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" min-width="100" fixed="right">
+ <template slot-scope="scope">
+ <el-button
+ type="text"
+ size="small"
+ @click="handleClick(scope.row)"
+ >鏌ョ湅</el-button
+ >
+ <el-button type="text" size="small">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <!-- 鍒嗛〉鍣� -->
+ <div>
+ <el-pagination
+ :current-page="page"
+ :page-sizes="[10, 20, 30, 40]"
+ :page-size="pageSize"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
+ </div>
+ </div>
+ </div>
</template>
+
+<script>
+import { selectAllList, addCnasAnnualPlan } from "@/api/CNAS/reviewAnnualPlan";
+export default {
+ data() {
+ return {
+ input: [],
+ auditTable: [],
+ page: 1,
+ total: 0,
+ pageSize: 10,
+ dialogFormVisible1: false,
+ uploadingForm: {
+ auditTime: "",
+ keyboarder: "",
+ keyboarder: "",
+ },
+ formLabelWidth: "80px",
+ };
+ },
+ created() {
+ this.getData();
+ },
+ methods: {
+ // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+ handleSizeChange(val) {
+ console.log(`姣忛〉 ${val} 鏉);
+ this.pageSize = val;
+ this.getData();
+ },
+ // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
+ handleCurrentChange(val) {
+ console.log(`褰撳墠椤�: ${val}`);
+ this.page = val;
+ this.getData();
+ },
+ // 閲嶇疆鎸夐挳
+ resetData() {
+ this.input = undefined;
+ this.page = 1;
+ this.pageSize = 10;
+ this.getData();
+ },
+ // 鏌ヨ鍒楄〃
+ async getData() {
+ const params = {
+ page: this.page,
+ pageSize: this.pageSize,
+ };
+ const { data } = await selectAllList(params);
+ this.auditTable = data.row;
+ this.total = data.total;
+ },
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+.top-bar {
+ margin: -25px -15px;
+ background: #fff;
+ display: flex;
+ justify-content: space-between;
+ padding: 5px 24px 0px 24px;
+}
+.library-table {
+ background-color: #fff;
+ flex: 1;
+ margin: 0px -15px;
+ margin-top: 40px;
+ display: flex;
+ flex-direction: column;
+ .table-box {
+ padding: 0px 20px;
+ margin-top: 20px;
+ flex: 1;
+ background: #fff;
+ display: flex;
+ flex-direction: column;
+ > div:nth-child(2) {
+ display: flex;
+ justify-content: end;
+ margin: 10px 0;
+ }
+ .tag-item {
+ width: 80px;
+ }
+ }
+}
+</style>
diff --git a/src/views/experiment/checkTheReport/index.vue b/src/views/experiment/checkTheReport/index.vue
index 4a58f59..5183a0c 100644
--- a/src/views/experiment/checkTheReport/index.vue
+++ b/src/views/experiment/checkTheReport/index.vue
@@ -216,7 +216,7 @@
}
.el-dropdown-link {
cursor: pointer;
- color: #409EFF;
+ color: #409eff;
}
.el-icon-arrow-down {
font-size: 12px;
@@ -250,6 +250,5 @@
margin: 10px 0;
}
}
-
}
</style>
diff --git a/src/views/experiment/planAssignments/index.vue b/src/views/experiment/planAssignments/index.vue
index f5bdf13..ad051ce 100644
--- a/src/views/experiment/planAssignments/index.vue
+++ b/src/views/experiment/planAssignments/index.vue
@@ -6,7 +6,7 @@
<el-select
v-model="searchData.devicename"
placeholder="鍏ㄩ儴"
- style="width: 100px"
+ style="width: 120px"
>
<el-option
v-for="item in options1"
@@ -21,6 +21,7 @@
<el-date-picker
v-model="searchData.time"
type="daterange"
+ value-format="yyyy-MM-dd"
range-separator="~"
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡"
@@ -31,7 +32,7 @@
<el-select
v-model="searchData.person"
placeholder="鍏ㄩ儴"
- style="width: 80px; margin-right: 100px"
+ style="width: 100px; margin-right: 100px"
>
<el-option
v-for="item in options2"
@@ -43,10 +44,14 @@
</el-select>
</el-form-item>
<el-form-item>
- <el-button type="primary" plain style="margin-right: 10px"
+ <el-button
+ type="primary"
+ plain
+ style="margin-right: 10px"
+ @click="resetData()"
>閲嶇疆</el-button
>
- <el-button type="primary">鏌ヨ</el-button>
+ <el-button type="primary" @click="getData()">鏌ヨ</el-button>
</el-form-item>
</el-form>
</div>
@@ -154,38 +159,76 @@
return {
searchData: {
devicename: "",
- time: "",
+ time: [],
person: "",
},
options1: [],
options2: [],
planTable: [],
+ planTableView: [],
};
},
created() {
this.getData();
},
+
methods: {
// 鏌ヨ鍒楄〃
async getData() {
- const params = {};
+ const params = {
+ device: this.searchData.devicename
+ ? this.searchData.devicename
+ : undefined,
+ user: this.searchData.person ? this.searchData.person : undefined,
+ beginTime:
+ this.searchData.time && this.searchData.time.length > 0
+ ? this.searchData.time[0]
+ : undefined,
+ endTime:
+ this.searchData.time && this.searchData.time.length > 0
+ ? this.searchData.time[1]
+ : undefined,
+ };
const { data } = await selectAllPlan(params);
this.planTable = data;
- this.planTable.forEach((res) => {
- let o1 = {
- value: res.device,
- label: res.device,
- };
- this.options1.push(o1);
-
- if(res.userId == undefined) {
-
- }
- });
- let d=this.options1.filter((val,index,self)=>{
- return self.indexOf(val)==index;
- })
- console.log(d);
+ if (this.options1.length === 0) {
+ //娣诲姞璁惧鍚嶇О
+ const deviceData = [];
+ this.planTable.forEach((res) => {
+ if (!deviceData.includes(res.device)) {
+ deviceData.push(res.device);
+ }
+ });
+ deviceData.forEach((item) => {
+ this.options1.push({
+ value: item,
+ label: item,
+ });
+ });
+ //娣诲姞鐢ㄦ埛
+ const userData = [];
+ this.planTable.forEach((res) => {
+ if (res.checker != undefined && !userData.includes(res.checker)) {
+ userData.push(res.checker);
+ }
+ });
+ userData.forEach((item) => {
+ this.options2.push({
+ value: item,
+ label: item,
+ });
+ });
+ console.log(this.options2);
+ }
+ },
+ // 閲嶇疆鎸夐挳
+ resetData() {
+ (this.searchData = {
+ devicename: "",
+ time: [],
+ person: "",
+ }),
+ this.getData();
},
},
};
@@ -216,7 +259,7 @@
height: 78vh;
.formwrapper {
padding: 0px 20px;
- margin-top: 0px;
+ margin-top: 20px;
flex: 1;
background: #fff;
/* padding: 20px 20px 10px 20px; */
diff --git a/src/views/experiment/reportAuditing/index.vue b/src/views/experiment/reportAuditing/index.vue
index 0e8bf65..3bd0410 100644
--- a/src/views/experiment/reportAuditing/index.vue
+++ b/src/views/experiment/reportAuditing/index.vue
@@ -2,7 +2,7 @@
<div class="content-main">
<div class="top-bar">
<el-form ref="form" :inline="true">
- <el-form-item class="sermargin">
+ <el-form-item>
<el-input
v-model="input"
class="input-form"
--
Gitblit v1.9.3