From 6521de5498a9812ea39e5810fffc051e5da1ed81 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期三, 30 八月 2023 13:36:26 +0800
Subject: [PATCH] 权限首页
---
src/views/inspectionManagement/commissionInspection/index.vue | 723 ++++++++++++++++++++++++++++++++++---------------------
1 files changed, 448 insertions(+), 275 deletions(-)
diff --git a/src/views/inspectionManagement/commissionInspection/index.vue b/src/views/inspectionManagement/commissionInspection/index.vue
index f34234e..51c08b0 100644
--- a/src/views/inspectionManagement/commissionInspection/index.vue
+++ b/src/views/inspectionManagement/commissionInspection/index.vue
@@ -1,284 +1,457 @@
<template>
- <div>
- <div v-if="!showDetail">
- <div class="content-main">
- <div class="top-bar">
- <el-form ref="form" :inline="true" :model="searchData">
- <el-form-item label="濮旀墭缂栧彿:" class="sermargin">
- <el-input
- v-model="searchData.code"
- class="input-form"
- placeholder="璇疯緭鍏�"
- >
- </el-input>
- </el-form-item>
- <el-form-item label="鏍峰搧鍚嶇О:" class="sermargin">
- <el-input
- v-model="searchData.name"
- class="input-form"
- placeholder="璇疯緭鍏�"
- >
- </el-input>
- </el-form-item>
- <el-form-item label="濮旀墭鍗曚綅:" style="margin-right: 20px;">
- <el-select v-model="searchData.department" placeholder="鍏ㄩ儴">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-button type="primary">鏌ヨ</el-button>
- <el-button type="primary" plain>閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- <el-form>
- <el-button class="rightBtn" type="primary" @click="goToaddCommision">鏂板濮旀墭</el-button>
- </el-form>
- </div>
- <div class="library-table">
- <div class="table-header">
- <div class="search-bar">
- <el-radio-group v-model="radioValue">
- <el-radio-button label="鍏ㄩ儴" />
- <el-radio-button label="寰呮楠�" />
- <el-radio-button label="宸叉楠�" />
- </el-radio-group>
- </div>
- <div class="generateInsp">
- <el-button type="primary" size="mini" icon="el-icon-document" style="background-color: rgb(1, 102, 226);">鐢熸垚鎶ユ鍗�</el-button>
- </div>
- </div>
- <div class="table-box">
- <el-table
- ref="commisionTable"
- :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="commisionTable"
- style="width: 100%"
- >
- <el-table-column
- type="index"
- label="搴忓彿"
- min-width="10%"
- />
- <el-table-column
- prop="commisioncode"
- label="濮旀墭缂栧彿"
- min-width="8%"
- />
- <el-table-column
- prop="department"
- label="濮旀墭鍗曚綅"
- min-width="10%"
- />
- <el-table-column
- prop="samplecode"
- label="鏍峰搧缂栧彿"
- min-width="8%"
- />
- <el-table-column
- prop="samplename"
- label="鏍峰搧鍚嶇О"
- min-width="8%"
- />
- <el-table-column
- prop="modelandspecification"
- label="瑙勬牸鍨嬪彿"
- min-width="10%"
- />
- <el-table-column
- prop="arrivetime"
- label="閫佽揪鏃堕棿"
- min-width="8%"
- />
- <el-table-column
- prop="deadline"
- label="瀹屾垚鏈熼檺"
- min-width="8%"
- />
- <el-table-column
- prop="person"
- label="濮旀墭缂栧埗浜�"
- min-width="8%"
- />
- <el-table-column
- prop="checkdate"
- label="妫�楠屾棩鏈�"
- min-width="8%"
- />
- <el-table-column
- prop="state"
- label="鐘舵��"
- min-width="8%"
- />
- <el-table-column
- label="鎿嶄綔"
- min-width="8%"
- >
- <template slot-scope="scope">
- <el-button type="text" size="small" @click="handleClick(scope.row)">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <!-- 鍒嗛〉鍣� -->
- <div>
- <el-pagination
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :current-page="currentPage"
- :page-sizes="[100, 200, 300, 400]"
- :page-size="100"
- layout="total, sizes, prev, pager, next, jumper"
- :total="400">
- </el-pagination>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div v-else>
- <router-view />
- </div>
- </div>
+ <div>
+ <div v-if="!showDetail">
+ <div class="content-main">
+ <div class="top-bar">
+ <el-form ref="form" :inline="true" :model="searchData">
+ <el-form-item label="濮旀墭缂栧彿:" class="sermargin">
+ <el-input v-model="searchData.code" class="input-form" placeholder="璇疯緭鍏�">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="鏍峰搧鍚嶇О:" class="sermargin">
+ <el-input v-model="searchData.name" class="input-form" placeholder="璇疯緭鍏�">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="濮旀墭鍗曚綅:" style="margin-right: 20px;">
+ <el-select v-model="searchData.department" placeholder="鍏ㄩ儴">
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="search">鏌ヨ</el-button>
+ <el-button type="primary" plain @click="reset">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ <el-form>
+ <el-popover placement="left" width="350" trigger="click">
+ <div class="vue_qr_div">
+ <el-row>
+ <el-col>
+ <el-input v-model="view" readonly size="medium" style="width: 250px;margin-right: 10px;"></el-input>
+ <el-button size="small" type="primary" v-if="viewId==null" @click="viewDia=true">鐢熸垚</el-button>
+ <el-button size="small" type="primary" v-else-if="viewId!=null" @click="copy">澶嶅埗</el-button>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col v-if="viewId==null">褰撳墠閾炬帴宸茶繃鏈燂紝璇风偣鍑荤敓鎴愭寜閽噸鏂扮敓鎴�</el-col>
+ <el-col
+ v-else-if="viewId!=null">褰撳墠閾炬帴灏嗗湪{{(parseInt(viewTime)/60/60)>1?(parseInt(viewTime)/60/60).toFixed(1)+'灏忔椂':Math.round(parseInt(viewTime)/60)+'鍒嗛挓'}}鍚庤繃鏈�</el-col>
+ </el-row>
+ </div>
+ <el-button slot="reference" class="rightBtn" type="primary" @click="goToaddCommision">鏂板濮旀墭</el-button>
+ </el-popover>
+ </el-form>
+ </div>
+ <div class="library-table">
+ <div class="table-header">
+ <div class="search-bar">
+ <el-radio-group v-model="radioValue" @change="radioclick">
+ <el-radio-button v-for="item in conditionsOptions" :key="item.value" :label="item.value">
+ {{ item.label }}
+ </el-radio-button>
+ </el-radio-group>
+ </div>
+ <div class="generateInsp">
+ <el-button type="primary" size="mini" icon="el-icon-document"
+ style="background-color: rgb(1, 102, 226);">鐢熸垚鎶ユ鍗�</el-button>
+ </div>
+ </div>
+ <div class="table-box">
+ <el-table ref="commisionTable" :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="commisionTable" style="width: 100%">
+ <el-table-column type="selection" min-width="10%" />
+ <el-table-column type="index" label="搴忓彿" min-width="10%" />
+ <el-table-column prop="entrust_coding" label="濮旀墭缂栧彿" min-width="10%" />
+ <el-table-column prop="entrusted" label="濮旀墭鍗曚綅" min-width="12%" />
+ <el-table-column prop="samples_number" label="鏍峰搧鏁伴噺" min-width="8%" />
+ <el-table-column prop="sample_name" label="鏍峰搧鍚嶇О" min-width="8%" />
+ <el-table-column prop="specifications_models" label="瑙勬牸鍨嬪彿" min-width="12%" />
+ <el-table-column prop="inspectionTime" label="閫佹牱鏃堕棿" min-width="8%" />
+ <el-table-column prop="completionDeadline" label="瀹屾垚鏈熼檺" min-width="8%" />
+ <el-table-column prop="contacts" label="濮旀墭缂栧埗浜�" min-width="8%" />
+ <el-table-column prop="insTime" label="妫�楠屾棩鏈�" min-width="8%" />
+ <el-table-column prop="inspection_status" label="鐘舵��" min-width="8%">
+ <template slot-scope="scope">
+ <div v-if="scope.row.inspection_status === 0">
+ <span style="color: green;">宸叉姤妫�</span>
+ </div>
+ <div v-else>
+ <span style="color: red;">鏈姤妫�</span>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" min-width="8%">
+ <template slot-scope="scope">
+ <el-button type="text" size="small" @click="handleClick(scope.row)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <!-- 鍒嗛〉鍣� -->
+ <div>
+ <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+ :current-page="currentPage" :page-sizes="[5, 10, 20]" :page-size="pageSize"
+ layout="total, sizes, prev, pager, next, jumper" :total="total">
+ </el-pagination>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div v-else>
+ <router-view />
+ </div>
+ <el-dialog title="閾炬帴鏃堕暱璁剧疆" :visible.sync="viewDia" width="30%">
+ <div>
+ <el-row style="line-height: 46px;">
+ <el-col :span="6" style="font-size: 14px;text-align: right;">鏃堕暱璁剧疆锛�</el-col>
+ <el-col :span="14" :offset="1">
+ <el-select v-model="viewTime" size="medium">
+ <el-option label="1 澶�" :value="1"></el-option>
+ <el-option label="2 澶�" :value="2"></el-option>
+ <el-option label="3 澶�" :value="3"></el-option>
+ <el-option label="4 澶�" :value="4"></el-option>
+ <el-option label="5 澶�" :value="5"></el-option>
+ <el-option label="6 澶�" :value="6"></el-option>
+ <el-option label="1 鍛�" :value="7"></el-option>
+ </el-select>
+ </el-col>
+ </el-row>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="getViewId()">鎻� 浜�</el-button>
+ <el-button @click="viewDia = false">鍙� 娑�</el-button>
+ </span>
+ </el-dialog>
+ <!-- 闅愯棌鍩熻緭鍏ユ鐢ㄦ潵澶嶅埗 -->
+ <input id="copyContext" style="position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;" />
+ </div>
</template>
<script>
-export default {
- data() {
- return {
- form: [],
- searchData: {
- code: '',
- name: '',
- department: ''
- },
- options: [{
- value: '1',
- label: '閮ㄩ棬1'
- }, {
- value: '2',
- label: '閮ㄩ棬2'
- }, {
- value: '3',
- label: '閮ㄩ棬3'
- }],
- radioValue: '',
- commisionTable: [{
- commisioncode: 'GW31478631',
- department: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
- samplecode: 'BP214274',
- samplename: '缁濈紭鏉�',
- modelandspecification: 'JLHA/G1A-185/30-26/7',
- arrivetime: '2023-08-01',
- deadline: '2023-08-05',
- person: '榛勫皬鏄�',
- checkdate: '2023-08-02',
- state: '宸叉娴�'
- }, {
- commisioncode: 'GW31478631',
- department: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
- samplecode: 'BP214274',
- samplename: '缁濈紭鏉�',
- modelandspecification: 'JLHA/G1A-185/30-26/7',
- arrivetime: '2023-08-01',
- deadline: '2023-08-05',
- person: '榛勫皬鏄�',
- checkdate: '2023-08-02',
- state: '宸叉娴�'
- }, {
- commisioncode: 'GW31478631',
- department: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
- samplecode: 'BP214274',
- samplename: '缁濈紭鏉�',
- modelandspecification: 'JLHA/G1A-185/30-26/7',
- arrivetime: '2023-08-01',
- deadline: '2023-08-05',
- person: '榛勫皬zhi',
- checkdate: '2023-08-02',
- state: '宸叉娴�'
- }],
- currentPage: 0,
- showDetail: false
- }
- },
- updated() {
- if (this.$router.currentRoute.name === 'AddCommision') {
- // console.log(this.$router.currentRoute.name)
- this.showDetail = true
- }
- },
- methods: {
- // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
- handleSizeChange(val) {
- console.log(`姣忛〉 ${val} 鏉)
- this.currentPage = 1
- this.pageSize = val
- },
- // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
- handleCurrentChange(val) {
- console.log(`褰撳墠椤�: ${val}`)
- this.currentPage = val
- },
- goToaddCommision() {
- this.$router.push('/inspectionManagement/commissionInspection/addCommision')
- this.showDetail = true
- }
- }
-}
+ import {
+ getCommisionList,
+ getViewUUID,
+ selectViewUUID,
+ delLink
+ } from '@/api/inspection/commisioninspection'
+ export default {
+ data() {
+ return {
+ form: [],
+ searchData: {
+ code: '',
+ name: '',
+ department: ''
+ },
+ options: [{
+ value: '1',
+ label: '閮ㄩ棬1'
+ }],
+ radioValue: 0,
+ commisionTable: [{
+ specifications_models: "GGXH-AAAAA",
+ inspectionTime: "2023-08-03",
+ id: 2,
+ samples_number: 0,
+ dateSurvey: "2023-08-03",
+ entrusted: "闃块噷宸村反",
+ completionDeadline: "2023-08-03",
+ contacts: "灏忛粦",
+ entrust_coding: "SL20230803000003",
+ sample_name: "鍙戝姩鏈�",
+ inspection_status: 1
+ }],
+ conditionsOptions: [{
+ label: '鍏ㄩ儴',
+ value: 0
+ },
+ {
+ label: '宸叉楠�',
+ value: 1
+ },
+ {
+ label: '寰呮楠�',
+ value: 2
+ }
+ ],
+ currentPage: 1,
+ pageSize: 5,
+ total: 100,
+ showDetail: false,
+ day: 1,
+ view: null,
+ viewId: null,
+ viewTime: 1,
+ viewDia: false
+ }
+ },
+ created() {
+ this.getCommisionList()
+ },
+ updated() {
+ if (this.$router.currentRoute.name === 'AddCommision') {
+ this.showDetail = true
+ }
+ },
+ methods: {
+ async getCommisionList() {
+ const res = await getCommisionList({
+ pageNo: this.currentPage,
+ pageSize: this.pageSize
+ })
+ this.commisionTable = res.data.row
+ this.total = res.data.total
+ // 鑾峰彇鎵�鏈夌殑濮旀墭鍗曚綅鍚嶇О
+ const allDepartmentNames = [...new Set(this.commisionTable.map(item => item.entrusted))]
+ // 灏哸llDepartmentNames杞崲涓簅ptions闇�瑕佺殑鏍煎紡
+ this.options = allDepartmentNames.map(name => ({
+ value: name,
+ label: name
+ }))
+
+ },
+ // 鏌ヨ鏂规硶
+ async search() {
+ // 灏嗘悳绱㈡潯浠朵綔涓哄弬鏁颁紶閫掔粰getCommisionList鏂规硶
+ let res
+ if (this.radioValue === 0) {
+ res = await getCommisionList({
+ pageNo: this.currentPage,
+ pageSize: this.pageSize,
+ entrustCoding: this.searchData.code,
+ sampleName: this.searchData.name,
+ entrusted: this.searchData.department,
+ })
+ } else {
+ res = await getCommisionList({
+ pageNo: this.currentPage,
+ pageSize: this.pageSize,
+ entrustCoding: this.searchData.code,
+ sampleName: this.searchData.name,
+ entrusted: this.searchData.department,
+ inspectionStatus: this.radioValue
+ })
+ }
+ this.commisionTable = res.data.row
+ this.total = res.data.total
+ },
+
+ // 閲嶇疆鏂规硶
+ reset() {
+ // 閲嶇疆鎼滅储鏉′欢
+ this.searchData.code = ''
+ this.searchData.name = ''
+ this.searchData.department = ''
+ this.radioValue = 0
+ // 閲嶆柊鑾峰彇鏁版嵁
+ this.getCommisionList()
+ },
+ async radioclick() {
+ // 澶勭悊鐐瑰嚮radio鐨勬椂闂�
+ if (this.radioValue === 0) {
+ this.getCommisionList()
+ } else {
+ const res = await getCommisionList({
+ pageNo: this.currentPage,
+ pageSize: this.pageSize,
+ inspectionStatus: this.radioValue
+ })
+ this.commisionTable = res.data.row
+ this.total = res.data.total
+ }
+
+ },
+ // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+ async handleSizeChange(val) {
+ this.currentPage = 1
+ this.pageSize = val
+ if (this.radioValue === 0) {
+ this.getCommisionList()
+ } else {
+ const res = await getCommisionList({
+ pageNo: this.currentPage,
+ pageSize: this.pageSize,
+ inspectionStatus: this.radioValue
+ })
+ this.commisionTable = res.data.row
+ this.total = res.data.total
+ }
+ },
+ // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
+ async handleCurrentChange(val) {
+ this.currentPage = val
+ if (this.radioValue === 0) {
+ this.getCommisionList()
+ } else {
+ const res = await getCommisionList({
+ pageNo: this.currentPage,
+ pageSize: this.pageSize,
+ inspectionStatus: this.radioValue
+ })
+ this.commisionTable = res.data.row
+ this.total = res.data.total
+ }
+ },
+ goToaddCommision() {
+ // this.showDetail = true
+ selectViewUUID({
+ day: this.day
+ }).then(res => {
+ this.view = `${this.vueIp}addCommision/${res.data.id}`
+ this.viewId = res.data.id
+ this.viewTime = res.data.time
+ })
+ },
+ getViewId() {
+ getViewUUID({
+ day: this.viewTime == null ? 1 : this.viewTime
+ }).then(res => {
+ this.viewId = res.data
+ this.view = `${this.vueIp}addCommision/${res.data.id}`
+ this.viewDia = false
+ this.$message.success('閾炬帴宸茬敓鎴愶紝鐐瑰嚮澶嶅埗鎸夐挳杩涜澶嶅埗')
+ })
+ },
+ copy() {
+ document.getElementById('copyContext').value = this.view
+ const input = document.querySelector('#copyContext');
+ input.select()
+ if (document.execCommand('copy')) {
+ this.$message.success('宸插鍒跺埌鍓创鏉�')
+ }
+ },
+ handleClick(row){
+ delLink({
+ id: row.id
+ }).then(res=>{
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.getCommisionList()
+ })
+ }
+ }
+ }
</script>
-<style scoped>
+<style scoped lang="scss">
+ .top-bar {
+ margin: -25px -15px;
+ background: #fff;
+ display: flex;
+ justify-content: space-between;
+ padding: 24px 24px 0px 24px;
-.top-bar{
- margin: -25px -15px;
- background: #fff;
- display: flex;
- justify-content: space-between;
- padding: 5px 24px 0px 24px;
- .sermargin{
- margin-right: 60px;
- }
- }
-.rightBtn{
- background-color: rgb(1, 102, 226);
-}
-.library-table{
- background-color: #fff;
- flex: 1;
- margin: 0px -15px;
- margin-top: 40px;
- display: flex;
- flex-direction: column;
- .table-header{
- padding: 20px;
- display: flex;
- justify-content: space-between;
- .el-form-item{
- margin-bottom: 30px !important;
- }
- }
- .table-box{
- padding: 0px 20px;
- margin-top: 0px;
- flex: 1;
- background: #fff;
- /* padding: 20px 20px 10px 20px; */
- display: flex;
- flex-direction: column;
- .el-table {
- flex: 1;
- }
- >div:nth-child(2){
- display: flex;
- justify-content: end;
- margin: 10px 0;
- }
- }
- }
+ .sermargin {
+ margin-right: 60px;
+ }
+ .rightForm {
+ display: flex;
+ justify-content: space-between;
+ /* background-color: #bfa; */
+ height: 40px;
+ line-height: 40px;
+
+ >div {
+ padding: 0px 10px;
+ padding-bottom: 10px;
+ border: 1px solid rgb(8, 156, 230);
+ margin-right: 10px;
+ /* height: 40px;
+ line-height: 40px; */
+ }
+
+ .rightBtn {
+ background-color: rgb(1, 102, 226);
+ }
+ }
+ }
+
+ .library-table {
+ background-color: #fff;
+ flex: 1;
+ margin: 0px -15px;
+ margin-top: 40px;
+ display: flex;
+ flex-direction: column;
+
+ .table-header {
+ padding: 20px;
+ display: flex;
+ justify-content: space-between;
+
+ .el-form-item {
+ margin-bottom: 30px !important;
+ }
+ }
+
+ .table-box {
+ padding: 0px 20px;
+ margin-top: 0px;
+ flex: 1;
+ background: #fff;
+ /* padding: 20px 20px 10px 20px; */
+ display: flex;
+ flex-direction: column;
+
+ .el-table {
+ flex: 1;
+ }
+
+ >div:nth-child(2) {
+ display: flex;
+ justify-content: end;
+ margin: 10px 0;
+ }
+ }
+ }
+
+ .rightBtn {
+ background-color: rgb(1, 102, 226);
+ }
+
+ .library-table {
+ background-color: #fff;
+ flex: 1;
+ margin: 0px -15px;
+ margin-top: 40px;
+ display: flex;
+ flex-direction: column;
+
+ .table-header {
+ padding: 20px;
+ display: flex;
+ justify-content: space-between;
+
+ .el-form-item {
+ margin-bottom: 30px !important;
+ }
+ }
+
+ .table-box {
+ padding: 0px 20px;
+ margin-top: 0px;
+ flex: 1;
+ background: #fff;
+ /* padding: 20px 20px 10px 20px; */
+ display: flex;
+ flex-direction: column;
+
+ .el-table {
+ flex: 1;
+ }
+
+ >div:nth-child(2) {
+ display: flex;
+ justify-content: end;
+ margin: 10px 0;
+ }
+ }
+ }
+
+ .vue_qr_div {
+ text-align: center;
+ color: #0166e2;
+ }
</style>
--
Gitblit v1.9.3