From 1210d5c10991c9f843a1770364a30fbfd3c5a5d8 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 13 一月 2026 13:17:45 +0800
Subject: [PATCH] 1.外购下单:标签打印功能调整 2.人员:培训计划导入导出添加【培训大类】字段 3.业务管理:报检新增【物料属性】字段选择,其余页面添加【物料属性】查询条件以及数据回显 4.标准库:布局优化,左侧选择树支持横向拖拽动态调整宽度
---
src/views/business/outsourcingFinishProduct/index.vue | 86 +++
src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue | 4
src/views/standard/standardLibrary/index.vue | 509 ++++++++++--------------
src/views/business/inspectionReview/index.vue | 24 +
src/views/business/rawMaterialInspection/index.vue | 73 +++
src/views/business/reportPreparation/index.vue | 24 +
src/views/business/inspectionTask/index.vue | 24 +
src/views/business/materialOrder/index.vue | 111 ++++
src/api/business/productOrder.js | 8
src/views/performance/manHour/workTimeManagement.vue | 1
src/main.js | 3
src/views/business/outsourcingFinishProduct/components/printDialog.vue | 320 ++++++++++------
src/views/business/productOrder/components/auxiliaryWireCore.vue | 7
13 files changed, 743 insertions(+), 451 deletions(-)
diff --git a/src/api/business/productOrder.js b/src/api/business/productOrder.js
index 439a1ce..9df59d5 100644
--- a/src/api/business/productOrder.js
+++ b/src/api/business/productOrder.js
@@ -98,6 +98,14 @@
params: query
})
}
+// 澶栬喘涓嬪崟鎴愬搧鏍囩鎵撳嵃淇℃伅
+export function labelOutsideOrderPrinting(query) {
+ return request({
+ url: '/insOrder/labelOutsideOrderPrinting',
+ method: 'post',
+ data: query
+ })
+}
// 鏌ヨ鎴愬搧鏍囩鎵撳嵃淇℃伅
export function labelOrderPrinting(query) {
return request({
diff --git a/src/main.js b/src/main.js
index 16962eb..a688c54 100644
--- a/src/main.js
+++ b/src/main.js
@@ -65,7 +65,8 @@
Vue.prototype.HaveJson = (val) => {
return JSON.parse(JSON.stringify(val));
};
-Vue.prototype.javaApi = "http://192.168.21.53:8001/lims";
+// Vue.prototype.javaApi = "http://192.168.21.53:8001/lims";
+Vue.prototype.javaApi = "http://127.0.0.1:8001";
Vue.prototype.checkPermi = checkPermi;
Vue.prototype.uploadHeader = {
Authorization: "Bearer " + getToken(),
diff --git a/src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue b/src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue
index a003633..06a897f 100644
--- a/src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue
+++ b/src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue
@@ -313,6 +313,10 @@
inDetailPlanTableData: [], // 骞村害璁″垝鏄庣粏琛ㄨ〃鏁版嵁
inDetailPlanColumn: [
{
+ label: '鍩硅澶х被',
+ prop: 'trainingCategory',
+ width: '100px',
+ },{
label: '鍩硅鐩爣',
prop: 'trainingObjectives',
width: '100px',
diff --git a/src/views/business/inspectionReview/index.vue b/src/views/business/inspectionReview/index.vue
index c45085d..7911e9a 100644
--- a/src/views/business/inspectionReview/index.vue
+++ b/src/views/business/inspectionReview/index.vue
@@ -11,6 +11,13 @@
<el-option v-for="(a, i) in typeSourceList" :key="i" :label="a.label" :value="a.value"></el-option>
</el-select>
</el-form-item>
+ <el-form-item label="鐗╂枡灞炴��" prop="materialProp">
+ <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%">
+ <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"
+ :value="dict.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
<el-form-item>
<el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
<el-button size="mini" @click="refresh">閲嶇疆</el-button>
@@ -61,7 +68,7 @@
onlyoffice,
limsTable,
},
- dicts: ["urgency_level", "inspection_task_state"],
+ dicts: ["urgency_level", "inspection_task_state","material_prop_type"],
computed: {
...mapGetters(["nickName", "userId"]),
},
@@ -90,6 +97,21 @@
},
{ label: "鏍峰搧鍚嶇О", prop: "sample", width: "160px" },
{
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
+ {
label: "涓嬪崟绫诲埆",
prop: "typeSource",
width: "100px",
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index ce24aa0..4ac266e 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -13,6 +13,13 @@
:value="a.value"></el-option>
</el-select>
</el-form-item>
+ <el-form-item label="鐗╂枡灞炴��" prop="materialProp">
+ <el-select clearable size="small" v-model="queryParams.materialProp" style="width: 100%">
+ <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"
+ :value="dict.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
<el-form-item>
<el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button>
<el-button size="mini" @click="refresh()">閲嶇疆</el-button>
@@ -251,7 +258,7 @@
viewManHourDia,
UnPassRetestResult
},
- dicts: ["urgency_level", "inspection_task_state"],
+ dicts: ["urgency_level", "inspection_task_state","material_prop_type"],
computed: {
...mapGetters(["nickName", "userId"]),
},
@@ -353,6 +360,21 @@
},
{ label: "鏍峰搧鍚嶇О", prop: "sample", width: "160px" },
{
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
+ {
label: "涓嬪崟绫诲埆",
prop: "typeSource",
width: "100px",
diff --git a/src/views/business/materialOrder/index.vue b/src/views/business/materialOrder/index.vue
index cf30a2a..f4040a3 100644
--- a/src/views/business/materialOrder/index.vue
+++ b/src/views/business/materialOrder/index.vue
@@ -23,35 +23,42 @@
@keyup.enter.native="goSearch">
</el-input>
</el-form-item>
- <el-form-item>
- <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4"
- :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
- @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
- <el-button size="mini" type="primary" @click="goSearch">鏌ヨ</el-button>
- <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
- </el-form-item>
<el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName"
- v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
+ v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
<el-input v-model="entity.supplierName" clearable placeholder="璇疯緭鍏�" size="small"
- @keyup.enter.native="goSearch">
+ @keyup.enter.native="goSearch">
</el-input>
</el-form-item>
+ <el-form-item label="鐗╂枡灞炴��" prop="materialProp">
+ <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%">
+ <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"
+ :value="dict.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
<el-form-item label="鏍峰搧鍨嬪彿" prop="sampleModel"
- v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
+ v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
<el-input v-model="entity.sampleModel" clearable placeholder="璇疯緭鍏�" size="small"
- @keyup.enter.native="goSearch">
+ @keyup.enter.native="goSearch">
</el-input>
</el-form-item>
<el-form-item label="妫�楠岀姸鎬�" prop="inspectStatus"
- v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
+ v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
<el-select v-model="entity.inspectStatus" clearable size="small" @change="goSearch">
<el-option v-for="(a, i) in inspectStatusList" :key="i" :label="a.label" :value="a.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="鎶ユ鏃堕棿" prop="date" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
<el-date-picker v-model="entity.date" end-placeholder="缁撴潫鏃ユ湡" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" @change="goSearch"
- range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" type="daterange" value-format="yyyy-MM-dd">
+ range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" type="daterange" value-format="yyyy-MM-dd">
</el-date-picker>
+ </el-form-item>
+ <el-form-item>
+ <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4"
+ :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
+ @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
+ <el-button size="mini" type="primary" @click="goSearch">鏌ヨ</el-button>
+ <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
</el-form-item>
</el-form>
</div>
@@ -212,15 +219,32 @@
name: "MaterialOrder",
// import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog },
+ dicts: ['material_prop_type'],
data() {
// 杩欓噷瀛樻斁鏁版嵁
return {
+ materialProps: [],
tableData: [],
tableLoading: false,
column: [
{ label: '鎵瑰彿', prop: 'updateBatchNo' },
{ label: '闆朵欢鍙�', prop: 'partNo' },
{ label: '闆朵欢鎻忚堪', prop: 'partDesc' },
+ {
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
{
dataType: 'tag',
label: '鐗╂枡绫诲瀷',
@@ -301,6 +325,21 @@
{ label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
{ label: '妫�楠屼汉', prop: 'userName' },
{ label: '涓嬪彂鏃堕棿', prop: 'sendTime' },
+ {
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
{
dataType: 'tag',
label: '鐗╂枡绫诲瀷',
@@ -440,6 +479,21 @@
},
{ label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
{ label: '妫�楠屼汉', prop: 'userName' },
+ {
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
{
dataType: 'tag',
label: '鐗╂枡绫诲瀷',
@@ -627,6 +681,21 @@
{ label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
{ label: '妫�楠屼汉', prop: 'userName' },
{
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
+ {
dataType: 'tag',
label: '鐗╂枡绫诲瀷',
prop: 'isExpire',
@@ -751,6 +820,21 @@
{ label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
{ label: '妫�楠屼汉', prop: 'userName' },
{
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
+ {
dataType: 'tag',
label: '鐗╂枡绫诲瀷',
prop: 'isExpire',
@@ -827,6 +911,7 @@
date: null,
beginDeclareDate: null,
endDeclareDate: null,
+ materialProp: null,
},
tabList: [
{
diff --git a/src/views/business/outsourcingFinishProduct/components/printDialog.vue b/src/views/business/outsourcingFinishProduct/components/printDialog.vue
index 77a921f..99e0c6f 100644
--- a/src/views/business/outsourcingFinishProduct/components/printDialog.vue
+++ b/src/views/business/outsourcingFinishProduct/components/printDialog.vue
@@ -1,60 +1,67 @@
<template>
<div>
- <el-dialog :visible.sync="isShow" title="鏍囩鎵撳嵃" top="5vh" width="600px" @close="$emit('closePrintDialog')">
+ <el-dialog title="鏍囩鎵撳嵃" :visible.sync="isShow" width="600px" top="5vh" @close="$emit('closePrintDialog')">
<div style="width:100%;height: 400px;overflow-y: auto;text-align: left">
<div class="dia_body">
- <el-checkbox
- v-model="checkAll"
- :indeterminate="isIndeterminate"
- style="margin: 10px 5px;"
- @change="handleCheckAllChange">鍏ㄩ��</el-checkbox>
- <el-checkbox-group v-model="checkIndexList" @change="changePrintCode()">
- <el-card v-for="(item, i) in barcodeData" :key="i" class="box-card" style="margin-bottom: 15px; font-size: 16px !important;">
- <el-checkbox :key="i" :label="i" style="position: relative;top:0;left:10px"><br></el-checkbox>
+ <el-checkbox style="margin: 10px 5px;" :indeterminate="isIndeterminate" v-model="checkAll"
+ @change="handleCheckAllChange">鍏ㄩ��</el-checkbox>
+ <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList">
+ <el-card class="box-card" v-for="(item, i) in barcodeData" :key="i"
+ style="margin-bottom: 15px; font-size: 16px !important;">
+ <el-checkbox :label="i" :key="i" style="position: relative;top:0;left:10px"><br></el-checkbox>
<div>
- <div class="titleH1" style="text-align: center; margin-bottom: 2px;font-size: 16px">妫�娴嬩腑蹇冩牱鍝佹爣璇嗗崱</div>
- <div style="text-align: center;">
- <barcode :displayValue="false" :height="34" :value="item.barcode" :width="2"></barcode>
- </div>
- <div style="margin-left: 20px;text-align: left">
- <div class="item">
- <span class="full-title">鏍峰搧鍚嶇О</span>:
- <span class="info">{{ item.sampleView }}</span>
+ <div style="text-align: center; margin-bottom: 2px;font-size: 22px;font-weight: bold;">鎴愬搧妫�娴�</div>
+ <div style="text-align: center; margin-bottom: 2px;font-size: 16px;font-weight: bold;">{{ item.partDesc
+ }}</div>
+ <div style="display: flex; align-items: center;">
+ <div style="flex: 0 0 45%; text-align: center;">
+ <vueQr :text="getQrCodeText(item)" :size="160" :margin="2"></vueQr>
+ <div style="margin-top: 5px; font-size: 14px;">
+ <span class="print-person-label">鎵撳嵃浜�</span>
+ <span style="margin-left: 20px; font-weight: bold;">{{ nickName }}</span>
+ </div>
</div>
- <div class="item">
- <span class="full-title">鐢熶骇鍗曚綅</span>:
- <span class="info">{{ item.production }}</span>
- </div>
- <div class="item2">
- <span class="full-title">瑙勬牸鍨嬪彿</span>:
- <span class="info">{{ item.sampleModel }}</span>
- </div>
- <div class="item">
- <span class="full-title">濮旀墭鏃ユ湡</span>:
- <span class="info">{{ item.sendTime }}</span>
- </div>
- <div class="item">
- <span class="full-title">濮旀墭浜�</span>:
- <span class="info2">{{ item.prepareUser }}</span>
- <span class="full-title">妫�娴嬬紪鍙�</span>:
- <span class="info">{{ item.entrustCode }}</span>
- </div>
- <div class="item">
- <span class="full-title">鏍峰搧鏁伴噺</span>:
- <span class="info2">{{ item.testQuantity }}</span>
- </div>
- <div style="font-weight: bold;display: flex;align-items: center;">
- <span class="full-title">鏍峰搧鐘舵��</span>:
- <el-radio-group v-model="item.insState" v-removeAriaHidden style="margin-top: 7px;margin-left: 4px;">
- <el-radio :label="0" style="font-weight: bold;margin-right: 7px;">寰呮</el-radio>
- <el-radio :label="1" style="font-weight: bold;margin-right: 7px;">鍦ㄦ</el-radio>
- <el-radio :label="2" style="font-weight: bold;margin-right: 7px;">宸叉</el-radio>
- </el-radio-group>
- <span>
- <el-radio v-model="item.isLeave"
- :label="true"
- size="small" style="margin-left: 14px;margin-top: 3px;" @click.native.prevent="changeIsLeave(item)">鐣欐牱</el-radio>
- </span>
+ <div style="flex: 1; margin-left: 10px;text-align: left">
+ <div class="item">
+ <span class="full-title">SN鍙�</span>
+ <span class="info">{{ item.lotBatchNo }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">缁濈紭棰滆壊</span>
+ <span class="info">{{ item.insulationColor }}</span>
+ </div>
+ <div class="item2">
+ <span class="full-title">鎶ゅ棰滆壊</span>
+ <span class="info">{{ item.outerColor }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">杞藉叿缂栧彿</span>
+ <span class="info">{{ item.drumNo }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">璧锋绫虫爣</span>
+ <span class="info">{{ item.startMeterMark }} - {{ item.endMeterMark }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">闀垮害(km)</span>
+ <span class="info">{{ calcInbondLength(item.startMeterMark, item.endMeterMark) }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">妫�娴嬩汉鍛�</span>
+ <span class="info">{{ item.inspectorName }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">妫�娴嬬粨璁�</span>
+ <span class="info">{{ formatData(item.insState) }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">鍏ュ簱鏃堕棿</span>
+ <span class="info">{{ item.updateTime }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">闆朵欢鍙�</span>
+ <span class="info">{{ item.partNo }}</span>
+ </div>
</div>
</div>
</div>
@@ -69,49 +76,63 @@
</el-row>
</span>
</el-dialog>
- <div class="el-dialog-body" style="overflow-y: auto;margin-top: 0;position: fixed;top: 20px;right: 10px;z-index: 99999;">
- <div id="printOrder" ref="printOrder" class="printOrder">
- <el-card v-for="(item, i) in checkDataList" :key="i" class="box-card" style="font-size: 0.29cm !important;font-weight: 700;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;">
+ <div class="el-dialog-body"
+ style="overflow-y: auto;margin-top: 0;position: fixed;top: 20px;right: 10px;z-index: 99999;width: 500px;">
+ <div id="printOrder" class="printOrder" ref="printOrder">
+ <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i"
+ style="font-size: 0.29cm !important;font-weight: 700;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;">
<div>
- <div class="titleH1" style="text-align: center;margin-bottom: 1px">妫�娴嬩腑蹇冩牱鍝佹爣璇嗗崱</div>
- <div style="text-align: center;">
- <barcode :displayValue="false" :height="22" :value="item.barcode" :width="1.6"></barcode>
- </div>
- <div style="margin-left: 12px;text-align: left">
- <div class="item">
- <span class="full-title4">鏍峰搧鍚嶇О:</span>
- <span class="info4">{{ item.sampleView }}</span>
+ <div class="titleH1" style="text-align: center;margin-bottom: 1px">鎴愬搧妫�娴�</div>
+ <div class="titleH1" style="text-align: center;margin-bottom: 1px">{{ item.partDesc }}</div>
+ <div style="display: flex; align-items: center;">
+ <div style="flex: 0 0 45%; text-align: center;">
+ <vueQr :text="getQrCodeText(item)" :size="160" :margin="2"></vueQr>
+ <div style="margin-top: 5px;">
+ <span class="print-person-label">鎵撳嵃浜�</span>
+ <span style="margin-left: 20px; font-weight: bold;">{{ nickName }}</span>
+ </div>
</div>
- <div class="item">
- <span class="full-title2">鐢熶骇鍗曚綅</span>:
- <span class="info">{{ item.production }}</span>
- </div>
- <div class="item2">
- <span class="full-title4">瑙勬牸鍨嬪彿:</span>
- <span class="info4">{{ item.sampleModel }}</span>
- </div>
- <div class="item">
- <span class="full-title2">濮旀墭鏃ユ湡</span>:
- <span class="info">{{ item.sendTime }}</span>
- </div>
- <div class="item">
- <span class="full-title2">濮旀墭浜�</span>:
- <span class="info3">{{ item.prepareUser }}</span>
- <span class="full-title2">妫�娴嬬紪鍙�</span>:
- <span class="info">{{ item.entrustCode }}</span>
- </div>
- <div class="item">
- <span class="full-title2">鏍峰搧鏁伴噺</span>:
- <span class="info3">{{ item.testQuantity }}</span>
- </div>
- <div>
- <span class="full-title2">鏍峰搧鐘舵��</span>:
- <span style="white-space: nowrap;margin-left: 2px">
- 寰呮<span v-if="item.insState!==0" class="scor"></span><span v-if="item.insState===0" class="checked">鈭�</span>
- 鍦ㄦ<span v-if="item.insState!==1" class="scor"></span><span v-if="item.insState===1" class="checked">鈭�</span>
- 宸叉<span v-if="item.insState!==2" class="scor"></span><span v-if="item.insState===2" class="checked">鈭�</span>
- 鐣欐牱<span v-if="!item.isLeave" class="scor"></span><span v-if="item.isLeave" class="checked">鈭�</span>
- </span>
+ <div style="flex: 1; margin-left: 5px;text-align: left">
+ <div class="item">
+ <span class="full-title">SN鍙�</span>
+ <span class="info">{{ item.lotBatchNo }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">缁濈紭棰滆壊</span>
+ <span class="info">{{ item.insulationColor }}</span>
+ </div>
+ <div class="item2">
+ <span class="full-title">鎶ゅ棰滆壊</span>
+ <span class="info">{{ item.outerColor }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">杞藉叿缂栧彿</span>
+ <span class="info">{{ item.drumNo }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">璧锋绫虫爣</span>
+ <span class="info">{{ item.startMeterMark }} - {{ item.endMeterMark }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">闀垮害(km)</span>
+ <span class="info">{{ calcInbondLength(item.startMeterMark, item.endMeterMark) }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">妫�娴嬩汉鍛�</span>
+ <span class="info">{{ item.inspectorName }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">妫�娴嬬粨璁�</span>
+ <span class="info">{{ formatData(item.insState) }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">鍏ュ簱鏃堕棿</span>
+ <span class="info">{{ item.updateTime }}</span>
+ </div>
+ <div class="item">
+ <span class="full-title">闆朵欢鍙�</span>
+ <span class="info">{{ item.partNo }}</span>
+ </div>
</div>
</div>
</div>
@@ -123,17 +144,25 @@
<script>
import PrintJS from "print-js";
-import {labelOrderPrinting} from "@/api/business/productOrder";
+import vueQr from "vue-qr";
+import { labelOutsideOrderPrinting } from "@/api/business/productOrder";
+import { mapGetters } from "vuex";
export default {
name: "printDialog",
// import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
- components: {},
+ // 2. 鍦ㄨ繖閲屾敞鍐岀粍浠�
+ components: {
+ vueQr
+ },
props: {
printDialog: {
type: Boolean,
default: () => false
},
+ },
+ computed: {
+ ...mapGetters(["nickName"]),
},
data() {
// 杩欓噷瀛樻斁鏁版嵁
@@ -158,17 +187,17 @@
selection.map(m => {
ids.push(m.id)
})
- labelOrderPrinting({
- ids: ids
- }).then(res => {
+ labelOutsideOrderPrinting({ ids: ids }).then(res => {
if (res.code === 200 && res.data.length > 0) {
res.data.forEach(item => {
+ console.log('item---', item)
item.sendTime = item.sendTime && item.sendTime.substring(0, 10)
item.sampleNumber = item.qtyArrived + item.buyUnitMeas
this.$set(item, 'barcode', item.entrustCode)
- this.$set(item, 'isLeave', item.insState === '2')
+ this.$set(item, 'isLeave', item.labelStatus === '2')
})
this.barcodeData = res.data
+ console.log('barcodeData---', this.barcodeData)
}
})
} catch (e) {
@@ -176,10 +205,27 @@
}
},
- changeIsLeave(item) {
- const index = this.barcodeData.findIndex(val => val.entrustCode === item.entrustCode)
- if (index > -1) {
- this.barcodeData[index].isLeave = !this.barcodeData[index].isLeave
+ calcInbondLength(startMeterMark, endMeterMark) {
+ let inboundLength = null;
+ if ((startMeterMark != null && startMeterMark !== '') && (endMeterMark != null && endMeterMark !== '')) {
+ let minus = this.$Big(endMeterMark).minus(this.$Big(startMeterMark));
+ inboundLength = Math.abs(minus)
+ }
+ return inboundLength;
+ },
+ formatData(params) {
+ if (params == 0) {
+ return '妫�楠屼腑'
+ } else if (params == 1) {
+ return '鍚堟牸'
+ } else if (params == 2) {
+ return '涓嶅悎鏍�'
+ } else if (params == 3) {
+ return '鏈笅鍗�'
+ } else if (params == 4) {
+ return '璁╂鏀捐'
+ } else {
+ return null
}
},
// 鍏ㄩ�夊閫夋鍥炶皟
@@ -197,6 +243,17 @@
},
changeType(type) {
type = type === '1' ? '0' : '1'
+ },
+ // 鐢熸垚浜岀淮鐮佸唴瀹�
+ getQrCodeText(item) {
+ const data = {
+ sn_no: item.lotBatchNo,
+ vehicle_no: item.drumNo,
+ qty_arrived: this.calcInbondLength(item.startMeterMark, item.endMeterMark),
+ lot_batch_no: item.lotBatchNo,
+ part_no: item.partNo,
+ };
+ return JSON.stringify(data, null, 2);
},
//閫夋嫨瑕佹墦鍗扮殑浜岀淮鐮�
changePrintCode() {
@@ -238,7 +295,7 @@
}
@media print{
width: 400px;
- height: 75px;
+ height: 800px;
margin:0;
}`,
onPrintDialogClose: this.erexcel = false,
@@ -261,56 +318,70 @@
<style scoped>
.item {
- margin-bottom: 4px;
+ margin-bottom: 2px;
+ line-height: 1.2;
}
.item2 {
- margin-bottom: 8px;
+ margin-bottom: 2px;
vertical-align: top;
+ line-height: 1.2;
}
.full-title {
display: inline-block;
- width: 80px;
+ width: 70px;
text-align-last: justify;
+ text-align: justify;
+ font-weight: bold;
}
+/* For the print section which might use smaller font */
.full-title2 {
display: inline-block;
- width: 50px;
+ width: 60px;
text-align-last: justify;
+ text-align: justify;
+ font-weight: bold;
}
.full-title4 {
display: inline-block;
- width: 53px;
+ width: 60px;
text-align-last: justify;
+ text-align: justify;
vertical-align: top;
+ font-weight: bold;
}
.info {
- margin-left: 2px;
+ margin-left: 15px;
+ font-weight: bold;
}
.info2 {
- margin-left: 2px;
- margin-right: 30px;
- width: 80px;
+ margin-left: 15px;
+ margin-right: 10px;
+ width: auto;
display: inline-block;
+ font-weight: bold;
}
.info3 {
- margin-left: 2px;
- margin-right: 8px;
- width: 44px;
+ margin-left: 15px;
+ margin-right: 10px;
+ width: auto;
display: inline-block;
+ font-weight: bold;
}
.info4 {
display: inline-block;
- margin-left: 2px;
+ margin-left: 15px;
white-space: normal;
- width: 260px;
+ width: 200px;
+ font-weight: bold;
+ vertical-align: top;
}
.checkboxInfo {
@@ -331,17 +402,26 @@
.checked {
margin-right: 14px;
margin-left: 4px;
+ font-weight: bold;
}
->>> .el-checkbox {
+.print-person-label {
+ display: inline-block;
+ width: 50px;
+ text-align-last: justify;
+ text-align: justify;
+ font-weight: bold;
+}
+
+>>>.el-checkbox {
margin-right: 10px;
}
->>> .el-card {
+>>>.el-card {
border: none;
}
->>> .el-card__body {
+>>>.el-card__body {
padding: 4px 2px 6px 14px;
}
</style>
diff --git a/src/views/business/outsourcingFinishProduct/index.vue b/src/views/business/outsourcingFinishProduct/index.vue
index 89be8bc..5040ad1 100644
--- a/src/views/business/outsourcingFinishProduct/index.vue
+++ b/src/views/business/outsourcingFinishProduct/index.vue
@@ -23,19 +23,18 @@
@keyup.enter.native="goSearch">
</el-input>
</el-form-item>
+ <el-form-item label="鐗╂枡灞炴��" prop="materialProp">
+ <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%">
+ <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"
+ :value="dict.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
<el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName" >
<el-input v-model="entity.supplierName" clearable placeholder="璇疯緭鍏�" size="small"
@keyup.enter.native="goSearch">
</el-input>
</el-form-item>
- <el-form-item>
- <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4"
- :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
- @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
- <el-button size="mini" type="primary" @click="goSearch">鏌ヨ</el-button>
- <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
- </el-form-item>
-
<el-form-item label="鏍峰搧鍨嬪彿" prop="sampleModel"
v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
<el-input v-model="entity.sampleModel" clearable placeholder="璇疯緭鍏�" size="small"
@@ -52,6 +51,13 @@
<el-date-picker v-model="entity.date" end-placeholder="缁撴潫鏃ユ湡" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" @change="goSearch"
range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" type="daterange" value-format="yyyy-MM-dd">
</el-date-picker>
+ </el-form-item>
+ <el-form-item>
+ <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4"
+ :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
+ @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
+ <el-button size="mini" type="primary" @click="goSearch">鏌ヨ</el-button>
+ <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
</el-form-item>
</el-form>
</div>
@@ -176,7 +182,7 @@
</template>
<script>
-import PrintDialog from "@/views/business/materialOrderComponents/materialOrder/printDialog.vue";
+import PrintDialog from "@/views/business/outsourcingFinishProduct/components/printDialog.vue";
import ShowInfo from "@/views/business/materialOrderComponents/materialOrder/showInfo.vue";
import DataLookVisible from "@/views/business/materialOrderComponents/materialOrder/dataLookVisible.vue";
import FilesLookVisible from "@/views/business/materialOrderComponents/materialOrder/filesLookVisible.vue";
@@ -197,6 +203,7 @@
export default {
name: "MaterialOrder",
+ dicts: ['material_prop_type'],
// import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog },
data() {
@@ -208,6 +215,21 @@
{ label: '鎵瑰彿', prop: 'updateBatchNo' },
{ label: '闆朵欢鍙�', prop: 'partNo' },
{ label: '闆朵欢鎻忚堪', prop: 'partDesc' },
+ {
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
{
dataType: 'tag',
label: '鐗╂枡绫诲瀷',
@@ -288,6 +310,21 @@
{ label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
{ label: '妫�楠屼汉', prop: 'userName' },
{ label: '涓嬪彂鏃堕棿', prop: 'sendTime' },
+ {
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
{
dataType: 'tag',
label: '鐗╂枡绫诲瀷',
@@ -427,6 +464,21 @@
},
{ label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
{ label: '妫�楠屼汉', prop: 'userName' },
+ {
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
{
dataType: 'tag',
label: '鐗╂枡绫诲瀷',
@@ -599,6 +651,21 @@
{ label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
{ label: '妫�楠屼汉', prop: 'userName' },
{
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
+ {
dataType: 'tag',
label: '鐗╂枡绫诲瀷',
prop: 'isExpire',
@@ -658,6 +725,7 @@
date: null,
beginDeclareDate: null,
endDeclareDate: null,
+ materialProp: null
},
tabList: [
{
diff --git a/src/views/business/productOrder/components/auxiliaryWireCore.vue b/src/views/business/productOrder/components/auxiliaryWireCore.vue
index 5e7898e..ef3bd1f 100644
--- a/src/views/business/productOrder/components/auxiliaryWireCore.vue
+++ b/src/views/business/productOrder/components/auxiliaryWireCore.vue
@@ -16,6 +16,10 @@
<el-option v-for="item in quantityList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
+ <el-form-item label="鍨嬪彿鍙傛暟" prop="modelNum">
+ <el-input v-model="auxiliaryWireCore.modelNum" placeholder="闈炲繀濉�" size="small"
+ @input="methodChange(auxiliaryWireCore.standardMethodListId)"></el-input>
+ </el-form-item>
<el-form-item label="妫�楠屾爣鍑�" prop="standardMethodListId">
<el-select v-model="auxiliaryWireCore.standardMethodListId" disabled placeholder="璇烽�夋嫨妫�楠屾爣鍑�"
size="small"
@@ -308,7 +312,8 @@
const cores = this.sampleSelectionList[0].cores
const conductorMaterial = this.sampleSelectionList[0].conductorMaterial
const conductorType = this.sampleSelectionList[0].conductorType
- const modelNum = this.sampleSelectionList[0].modelNum
+ // const modelNum = this.sampleSelectionList[0].modelNum
+ const modelNum = this.auxiliaryWireCore.modelNum
selectStandardProductList({
model: this.$parent.addObj.model ? this.$parent.addObj.model : model,
modelNum: modelNum,
diff --git a/src/views/business/rawMaterialInspection/index.vue b/src/views/business/rawMaterialInspection/index.vue
index b7dc406..ff2a13d 100644
--- a/src/views/business/rawMaterialInspection/index.vue
+++ b/src/views/business/rawMaterialInspection/index.vue
@@ -97,6 +97,11 @@
<el-option v-for="(item,index) in orderTypeList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
</el-select>
</el-form-item>
+ <el-form-item class="declareObj-form-item" label="鐗╂枡灞炴�э細" prop="materialProp">
+ <el-select v-model="declareBatchObj.materialProp" clearable size="small">
+ <el-option v-for="(item,index) in materialPropList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
+ </el-select>
+ </el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-row>
@@ -157,6 +162,11 @@
<el-form-item class="declareObj-form-item" label="閿�鍞鍗曞垎绫伙細" prop="orderType">
<el-select v-model="declareObj.orderType" clearable size="small">
<el-option v-for="(item,index) in orderTypeList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item class="declareObj-form-item" label="鐗╂枡灞炴�э細" prop="materialProp">
+ <el-select v-model="declareObj.materialProp" clearable size="small">
+ <el-option v-for="(item,index) in materialPropList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
</el-select>
</el-form-item>
</el-form>
@@ -264,9 +274,20 @@
</el-table>
</div>
<span slot="footer" class="dialog-footer">
- <el-button @click="resetOrderSplitData()" :disabled="confirmSplitOrderLoading">鍙� 娑�</el-button>
- <el-button type="primary" @click="confirmSplitOrder()" :loading="confirmSplitOrderLoading">纭� 瀹�</el-button>
- </span>
+ <el-button @click="resetOrderSplitData()" :disabled="confirmSplitOrderLoading">鍙� 娑�</el-button>
+ <el-button type="primary" @click="beforeConfirmSplitOrder()" :loading="confirmSplitOrderLoading">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ <el-dialog
+ title="閫夋嫨鐗╂枡灞炴��"
+ :visible.sync="materialPropVisible"
+ width="15%">
+ <el-select placeholder="璇烽�夋嫨鐗╂枡灞炴��" v-model="declareObj.materialProp" clearable size="small">
+ <el-option v-for="(item,index) in materialPropList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
+ </el-select>
+ <span slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="confirmSplitOrder">纭� 瀹�</el-button>
+ </span>
</el-dialog>
</div>
</template>
@@ -301,12 +322,17 @@
data() {
// 杩欓噷瀛樻斁鏁版嵁
return {
+ materialPropVisible:false,
declareBatchObj:{
- orderType:''
+ orderType:'',
+ materialProp:''
},
declareObjBatchRules:{
orderType: [
{ required: true, message: '璇烽�夋嫨閿�鍞鍗曞垎绫�', trigger: 'change' }
+ ],
+ materialProp: [
+ { required: true, message: '璇烽�夋嫨鐗╂枡灞炴��', trigger: 'change' }
],
},
confirmSplitOrderLoading: false,
@@ -580,6 +606,7 @@
buyUnitMeas: '', // 鍗曚綅
isExpire: '', // 鍗曚綅
orderType: null, // 閿�鍞鍗曞垎绫�
+ materialProp: null, // 鐗╂枡灞炴��
},
componentData: { // 琛ㄦ牸鏁版嵁
updateBatchNo: null,
@@ -629,6 +656,9 @@
orderType: [
{ required: true, message: '璇烽�夋嫨閿�鍞鍗曞垎绫�', trigger: 'change' }
],
+ materialProp: [
+ { required: true, message: '璇烽�夋嫨鐗╂枡灞炴��', trigger: 'change' }
+ ],
},
tabList: [
{
@@ -664,11 +694,13 @@
outLoading: false,
upLoading: false,
orderTypeList: [],
+ materialPropList: [],
}
},
mounted() {
this.refreshTable()
this.getOrderTypeList()
+ this.getMaterialPropList()
},
// 鏂规硶闆嗗悎
methods: {
@@ -676,6 +708,16 @@
getDicts('inspection_type').then(res=>{
if(res.code === 200){
this.orderTypeList = res.data
+ }
+ }).catch(error=>{
+ console.error(error)
+ })
+ },
+ //鑾峰彇鐗╂枡灞炴�у瓧鍏搁」
+ getMaterialPropList(){
+ getDicts('material_prop_type').then(res=>{
+ if(res.code === 200){
+ this.materialPropList = res.data
}
}).catch(error=>{
console.error(error)
@@ -691,16 +733,31 @@
this.refreshTable()
})
},
+ //纭鎷嗗垎璁㈠崟鍓嶏紝閫夋嫨璁㈠崟鐨勭墿鏂欏睘鎬�
+ beforeConfirmSplitOrder(){
+ console.log(this.declareObj.materialProp)
+ if(!this.declareObj.materialProp){
+ this.materialPropVisible = true
+ }else{
+ this.confirmSplitOrder()
+ }
+ },
confirmSplitOrder(){
if(this.orderSplitDetailData.length===0){
this.$message.error('璇峰厛瀵煎叆鎷嗗垎鏁版嵁')
return
}
+ if(!this.declareObj.materialProp){
+ this.$message.warning("璇烽�夋嫨鐗╂枡灞炴��")
+ return
+ }
+ this.materialPropVisible = false
this.confirmSplitOrderLoading = true
let requestData = {
ifsId: this.declareObj.id,
splitDetailList: this.orderSplitDetailData,
- pushToMes: this.pushToMes
+ pushToMes: this.pushToMes,
+ materialProp: this.declareObj.materialProp
}
confirmSplitOrder(requestData).then(res=>{
if(res.code===200 && res.data){
@@ -945,7 +1002,8 @@
this.declareDialogSVisible = true
inspectionReport({
ids: ids,
- orderType: this.declareBatchObj.orderType
+ orderType: this.declareBatchObj.orderType,
+ materialProp: this.declareBatchObj.materialProp
}).then(res => {
if (res.code === 200) {
this.declareDialogSVisible = false
@@ -1004,7 +1062,8 @@
inspectionReportOne({
id: this.declareObj.id,
updateBatchNo: this.declareObj.updateBatchNo,
- orderType: this.declareObj.orderType
+ orderType: this.declareObj.orderType,
+ materialProp: this.declareObj.materialProp
}).then(res => {
if (res.code === 200) {
this.declareDialogVisible = false
diff --git a/src/views/business/reportPreparation/index.vue b/src/views/business/reportPreparation/index.vue
index 43fd45e..0046fc0 100644
--- a/src/views/business/reportPreparation/index.vue
+++ b/src/views/business/reportPreparation/index.vue
@@ -16,6 +16,13 @@
<el-option v-for="(a, i) in typeSourceList" :key="i" :label="a.label" :value="a.value"></el-option>
</el-select>
</el-form-item>
+ <el-form-item label="鐗╂枡灞炴��" prop="materialProp">
+ <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%">
+ <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"
+ :value="dict.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
<el-form-item label="妫�楠岀被鍒�" prop="orderType">
<el-select v-model="entity.orderType" clearable size="small" @change="refreshTable()">
<el-option v-for="(a, i) in orderTypeList" :key="i" :label="a.label" :value="a.value"></el-option>
@@ -213,6 +220,7 @@
export default {
name: 'ReportPreparation',
components: { limsTable, onlyoffice },
+ dicts: ['material_prop_type'],
data() {
return {
entity: {
@@ -220,6 +228,7 @@
code: null,
typeSource: null,
orderType: null,
+ materialProp: null
},
page: {
current: 1,
@@ -363,6 +372,21 @@
},
},
{
+ label: '鐗╂枡灞炴��',
+ prop: 'materialProp',
+ formatData: (params) => {
+ if (!params) return null
+
+ for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+ const item = this.dict.type.material_prop_type[i]
+ if (item.value == params) {
+ return item.label
+ }
+ }
+ return null
+ }
+ },
+ {
label: "妫�楠岀被鍨�",
prop: "orderType",
width: "100px",
diff --git a/src/views/performance/manHour/workTimeManagement.vue b/src/views/performance/manHour/workTimeManagement.vue
index f709c4f..0bc2dab 100644
--- a/src/views/performance/manHour/workTimeManagement.vue
+++ b/src/views/performance/manHour/workTimeManagement.vue
@@ -681,6 +681,7 @@
this.formData.approvedWorkingHour = "";
this.formData.nonproductiveTime = "";
this.formData.auxiliaryProject = "";
+ this.addVisible = false;
this.refreshTable("page");
// this.collectWorkingHours();
});
diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue
index d9855a5..448fd21 100644
--- a/src/views/standard/standardLibrary/index.vue
+++ b/src/views/standard/standardLibrary/index.vue
@@ -1,27 +1,28 @@
<template>
- <div class="standard">
- <div class="left">
- <el-row>
- <el-col :span="20">
- <el-input v-model="search" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" size="small" style="margin-bottom: 5px"
- suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter"></el-input>
- </el-col>
- <el-col v-if="checkPermi(['standard:standardLibrary:add'])" :span="4"
- style="text-align: center; line-height: 30px">
- <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="addDia = true"></el-button>
- </el-col>
- </el-row>
- <el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list"
- :default-expanded-keys="expandedKeys" :draggable="true" :filter-node-method="filterNode"
- :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" style="
- height: calc(100% - 30px);
- overflow-y: scroll;
- scrollbar-width: none;
- " @node-click="handleNodeClick"
- @node-drop="handleDrop">
- <div slot-scope="{ node, data }" class="custom-tree-node">
- <el-row style="width: 100%">
- <el-col :class="{ sort: node.level > 3 }" :span="19" :title="data.label" style="text-align: left">
+ <div class="app-container">
+ <el-row :gutter="20">
+ <splitpanes :horizontal="this.$store.getters.device === 'mobile'" class="default-theme">
+ <!--閮ㄩ棬鏁版嵁-->
+ <pane size="12">
+ <el-col>
+ <div class="head-container addButton">
+ <el-input v-model="search" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" size="small" style="margin-bottom: 5px"
+ suffix-icon="el-icon-search" @keydown.enter.native="searchFilter" @blur="searchFilter" @clear="searchFilter"></el-input>
+ <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="addDia = true"></el-button>
+ </div>
+ <div class="head-container">
+ <el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list"
+ :default-expanded-keys="expandedKeys" :draggable="true" :filter-node-method="filterNode"
+ :props="{ children: 'children', label: 'label' }" highlight-current node-key="label"
+ style="
+ height: calc(100vh - 173px);
+ overflow-y: scroll;
+ scrollbar-width: none;"
+ @node-click="handleNodeClick"
+ @node-drop="handleDrop">
+ <div slot-scope="{ node, data }" class="custom-tree-node">
+ <el-row style="width: 100%">
+ <el-col :class="{ sort: node.level > 3 }" :span="19" :title="data.label" style="text-align: left">
<span>
<i :class="`node_i ${data.children != undefined
? data.code === '[1]'
@@ -31,162 +32,169 @@
}`"></i>
{{ data.label }}
</span>
- </el-col>
- <el-col v-if="
+ </el-col>
+ <el-col v-if="
checkPermi(['standard:standardLibrary:delStandardTree']) &&
(node.data.children === null ||
node.data.children === undefined)
" :span="2" style="text-align: right">
- <el-button size="mini" type="text" @click.stop="editTreeName(node.data)">
- <i class="el-icon-edit"></i>
- </el-button>
- </el-col>
- <el-col v-if="
+ <el-button size="mini" type="text" @click.stop="editTreeName(node.data)">
+ <i class="el-icon-edit"></i>
+ </el-button>
+ </el-col>
+ <el-col v-if="
checkPermi(['standard:standardLibrary:delStandardTree']) &&
(node.data.children === null ||
node.data.children === undefined)
" :span="2" style="text-align: right">
- <el-button size="mini" type="text" @click.stop="remove(node, data)">
- <i class="el-icon-delete"></i>
- </el-button>
- </el-col>
- </el-row>
- </div>
- </el-tree>
- </div>
- <div class="right">
- <el-row class="title" style="width: 100%">
- <el-col :span="20" style="font-size: 14px; color: #999">{{
- selectTree
- }}</el-col>
- <el-col :span="4">
- <el-button v-if="isShowCopy" size="small" style="position: absolute; right: 20px; top: 1px" type="primary"
- @click="openCopyDia">鎵归噺澶嶅埗</el-button>
- </el-col>
- </el-row>
- <el-row v-loading="tableLoad" class="standard_table">
- <el-table ref="standard" :data="standardList" class="el-table" header-row-class-name="header-class" height="220"
- :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
- highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark"
- @row-click="rowClick">
- <el-table-column label="鏍囧噯缂栧彿" prop="code" show-overflow-tooltip width="200">
- <template slot-scope="scope">
+ <el-button size="mini" type="text" @click.stop="remove(node, data)">
+ <i class="el-icon-delete"></i>
+ </el-button>
+ </el-col>
+ </el-row>
+ </div>
+ </el-tree>
+ </div>
+ </el-col>
+ </pane>
+ <!--鐢ㄦ埛鏁版嵁-->
+ <pane size="88">
+ <div class="search_form">
+ <div style="height:37px">
+ <p style="font-size: 14px; color: #999;margin-left: 10px">{{ selectTree }}</p>
+ </div>
+ <div class="options_button">
+ <el-button v-if="isShowCopy" size="small" style="position: absolute; right: 20px; top: 1px" type="primary"
+ @click="openCopyDia">鎵归噺澶嶅埗</el-button>
+ </div>
+ </div>
+ <el-col>
+ <el-row v-loading="tableLoad" class="standard_table">
+ <el-table ref="standard" :data="standardList" class="el-table" header-row-class-name="header-class" height="220"
+ :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+ highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark"
+ @row-click="rowClick">
+ <el-table-column label="鏍囧噯缂栧彿" prop="code" show-overflow-tooltip width="200">
+ <template slot-scope="scope">
<span style="color: red; font-size: 14px">{{
- scope.row["code"]
- }}</span>
- </template>
- </el-table-column>
- <el-table-column label="鏍囧噯鍚嶇О" prop="name" show-overflow-tooltip></el-table-column>
- <el-table-column label="澶囨敞" prop="remark" show-overflow-tooltip></el-table-column>
- </el-table>
- </el-row>
- <el-row v-loading="tableLoad2" class="product_table">
- <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList"
- :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
- :fit="true" :row-class-name="tableRowClassName" class="productTable"
- header-row-class-name="header-class" height="100%" row-key="id" stripe style="width: 100%"
- tooltip-effect="dark" @select="upProductSelect" @selection-change="handleSelectionChange"
- @select-all="handleAll">
- <el-table-column type="selection" width="50"> </el-table-column>
- <el-table-column label="浜у搧" min-width="100" prop="sample" show-overflow-tooltip></el-table-column>
- <el-table-column label="鍨嬪彿" min-width="100" prop="model" show-overflow-tooltip></el-table-column>
- <el-table-column label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass"
- show-overflow-tooltip></el-table-column>
- <el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column>
- <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass"
- show-overflow-tooltip></el-table-column>
- <el-table-column label="瀛愬疄楠屽" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column>
- <el-table-column label="瑕佹眰鍊�" min-width="200px" prop="ask">
- <template slot-scope="scope">
- <el-input v-if="
+ scope.row["code"]
+ }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏍囧噯鍚嶇О" prop="name" show-overflow-tooltip></el-table-column>
+ <el-table-column label="澶囨敞" prop="remark" show-overflow-tooltip></el-table-column>
+ </el-table>
+ </el-row>
+ <el-row v-loading="tableLoad2" class="product_table">
+ <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList"
+ :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+ :fit="true" :row-class-name="tableRowClassName" class="productTable"
+ header-row-class-name="header-class" height="100%" row-key="id" stripe style="width: 100%;height:calc(100% - 220px)"
+ tooltip-effect="dark" @select="upProductSelect" @selection-change="handleSelectionChange"
+ @select-all="handleAll">
+ <el-table-column type="selection" width="50"> </el-table-column>
+ <el-table-column label="浜у搧" min-width="100" prop="sample" show-overflow-tooltip></el-table-column>
+ <el-table-column label="鍨嬪彿" min-width="100" prop="model" show-overflow-tooltip></el-table-column>
+ <el-table-column label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass"
+ show-overflow-tooltip></el-table-column>
+ <el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column>
+ <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass"
+ show-overflow-tooltip></el-table-column>
+ <el-table-column label="瀛愬疄楠屽" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column>
+ <el-table-column label="瑕佹眰鍊�" min-width="200px" prop="ask">
+ <template slot-scope="scope">
+ <el-input v-if="
checkPermi(['standard:standardLibrary:upStandardProduct'])
" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鍊�" size="small"
- type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input>
- <span v-else>{{ scope.row.ask }}</span>
- </template>
- </el-table-column>
- <el-table-column label="瑕佹眰鎻忚堪" min-width="220px" prop="tell">
- <template slot-scope="scope">
- <el-input v-if="
+ type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input>
+ <span v-else>{{ scope.row.ask }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="瑕佹眰鎻忚堪" min-width="220px" prop="tell">
+ <template slot-scope="scope">
+ <el-input v-if="
checkPermi(['standard:standardLibrary:upStandardProduct'])
" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鎻忚堪"
- size="small" type="textarea" @change="(value) => upStandardProductListOfTell(value, scope.row.id)
+ size="small" type="textarea" @change="(value) => upStandardProductListOfTell(value, scope.row.id)
"></el-input>
- <span v-else>{{ scope.row.ask }}</span>
- </template>
- </el-table-column>
- <el-table-column label="璇曢獙鏂规硶" prop="method" width="200">
- <template slot-scope="scope">
- <el-select v-if="
+ <span v-else>{{ scope.row.ask }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="璇曢獙鏂规硶" prop="method" width="200">
+ <template slot-scope="scope">
+ <el-select v-if="
checkPermi(['standard:standardLibrary:upStandardProduct'])
" v-model="scope.row.methodS" clearable placeholder="璇曢獙鏂规硶" size="small" @change="(value) => upStandardProductListOfMethodS(value, scope.row.id)
">
- <el-option v-for="(a, i) in scope.row.method &&
+ <el-option v-for="(a, i) in scope.row.method &&
JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option>
- </el-select>
- <span v-else>{{ scope.row.methodS }}</span>
- </template>
- </el-table-column>
- <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip>
- <template slot-scope="scope">
- <el-select v-if="
+ </el-select>
+ <span v-else>{{ scope.row.methodS }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip>
+ <template slot-scope="scope">
+ <el-select v-if="
checkPermi(['standard:standardLibrary:upStandardProduct'])
" v-model="scope.row.radius" clearable placeholder="鏉′欢" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id)
">
- <el-option v-for="(a, i) in scope.row.radiusList &&
+ <el-option v-for="(a, i) in scope.row.radiusList &&
JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option>
- </el-select>
- <span v-else>{{ scope.row.radius }}</span>
- </template>
- </el-table-column>
- <el-table-column label="璁¢噺鍗曚綅" prop="unit" show-overflow-tooltip width="100"></el-table-column>
- <el-table-column label="鍗曚环(鍏�)" prop="price" width="120">
- <template slot-scope="scope">
- <el-input v-if="
+ </el-select>
+ <span v-else>{{ scope.row.radius }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="璁¢噺鍗曚綅" prop="unit" show-overflow-tooltip width="100"></el-table-column>
+ <el-table-column label="鍗曚环(鍏�)" prop="price" width="120">
+ <template slot-scope="scope">
+ <el-input v-if="
checkPermi(['standard:standardLibrary:upStandardProduct'])
" v-model="scope.row.price" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id)
">
- </el-input>
- <span v-else>{{ scope.row.price }}</span>
- </template>
- </el-table-column>
- <el-table-column label="宸ユ椂绯绘暟" prop="manHour" width="120">
- <template slot-scope="scope">
- <el-input v-if="
+ </el-input>
+ <span v-else>{{ scope.row.price }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="宸ユ椂绯绘暟" prop="manHour" width="120">
+ <template slot-scope="scope">
+ <el-input v-if="
checkPermi(['standard:standardLibrary:upStandardProduct'])
" v-model="scope.row.manHour" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id)
">
- </el-input>
- <span v-else>{{ scope.row.manHour }}</span>
- </template>
- </el-table-column>
- <el-table-column label="宸ユ椂鍒嗙粍" prop="manHourGroup" show-overflow-tooltip width="100"></el-table-column>
- <el-table-column label="妯℃澘" prop="templateId" width="200">
- <template slot-scope="scope">
- <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
+ </el-input>
+ <span v-else>{{ scope.row.manHour }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="宸ユ椂鍒嗙粍" prop="manHourGroup" show-overflow-tooltip width="100"></el-table-column>
+ <el-table-column label="妯℃澘" prop="templateId" width="200">
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
" filterable size="small" @change="(value) =>
upStandardProductListOfTemplate(value, scope.row.id)
">
- <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option>
- </el-select>
- </template>
- </el-table-column>
- <el-table-column label="鍖洪棿" prop="section" show-overflow-tooltip width="120"></el-table-column>
- <el-table-column label="鎿嶄綔" prop="section" width="160">
- <template slot-scope="scope">
- <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
+ <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column label="鍖洪棿" prop="section" show-overflow-tooltip width="120"></el-table-column>
+ <el-table-column label="鎿嶄綔" prop="section" width="160">
+ <template slot-scope="scope">
+ <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
">鍖洪棿璁剧疆</el-button>
- <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
+ <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
" @click="bindSupplierDensitySecond(scope.row)">缁戝畾鍘傚</el-button>
- </template>
- </el-table-column>
- </el-table>
- <!-- <el-pagination :current-page="currentPage" :page-size="300" :total="total" layout="total"
- style="position: absolute; right: 16px; bottom: 1px" @current-change="handleCurrentChange">
- </el-pagination> -->
- <p style="text-align: right;margin-right: 20px;color: #333;">鍏眥{ total }}鏉�</p>
- </el-row>
- </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ <!-- <el-pagination :current-page="currentPage" :page-size="300" :total="total" layout="total"
+ style="position: absolute; right: 16px; bottom: 1px" @current-change="handleCurrentChange">
+ </el-pagination> -->
+ <p style="text-align: right;margin-right: 20px;color: #333;">鍏眥{ total }}鏉�</p>
+ </el-row>
+ </el-col>
+ </pane>
+ </splitpanes>
+ </el-row>
<el-dialog :visible.sync="addDia" title="鍒嗙被娣诲姞" width="400px">
<div class="body">
@@ -196,7 +204,7 @@
</el-col>
<el-col :offset="1" :span="16">
<el-input v-model="addOb.model" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small"
- @keyup.enter.native="addStandardTree"></el-input>
+ @keyup.enter.native="addStandardTree"></el-input>
</el-col>
</el-row>
</div>
@@ -213,7 +221,7 @@
</el-col>
<el-col :offset="1" :span="16">
<el-input v-model="addOb.model" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small"
- @keyup.enter.native="updateStandardTree"></el-input>
+ @keyup.enter.native="updateStandardTree"></el-input>
</el-col>
</el-row>
</div>
@@ -246,7 +254,7 @@
<el-table-column align="center" label="瑕佹眰鎻忚堪">
<template slot-scope="scope">
<el-input v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 2 }" clearable placeholder="瑕佹眰鎻忚堪"
- size="small" type="textarea"></el-input>
+ size="small" type="textarea"></el-input>
</template>
</el-table-column>
<el-table-column align="center" label="瀵间綋鏉愯川">
@@ -272,7 +280,7 @@
<el-table-column align="center" label="鎿嶄綔" width="70">
<template slot-scope="scope">
<el-button circle icon="el-icon-minus" size="mini" type="danger"
- @click="sectionList.splice(scope.$index, 1)"></el-button>
+ @click="sectionList.splice(scope.$index, 1)"></el-button>
</template>
</el-table-column>
</el-table>
@@ -284,11 +292,11 @@
</span>
</el-dialog>
<bindSupplierDensityDialogAsk v-if="bindSupplierDensityDialog"
- :bindSupplierDensityDialog="bindSupplierDensityDialog" :currentRow="currentSupplierDensityRow"
- @closeBindPartDialog="closeBindSupplierDensityDialog">
+ :bindSupplierDensityDialog="bindSupplierDensityDialog" :currentRow="currentSupplierDensityRow"
+ @closeBindPartDialog="closeBindSupplierDensityDialog">
</bindSupplierDensityDialogAsk>
<BatchCopy v-if="batchCopyDia" ref="BatchCopy" :selectTree1="selectTree" :standardId="standardId"
- @refreshList="refreshList"></BatchCopy>
+ @refreshList="refreshList"></BatchCopy>
</div>
</template>
@@ -316,12 +324,17 @@
} from "@/api/standard/standardLibrary";
import bindSupplierDensityDialogAsk from "./components/bindSupplierDensityDialogAsk.vue";
import BatchCopy from "./components/BatchCopy.vue";
+import { Splitpanes, Pane } from "splitpanes";
+import "splitpanes/dist/splitpanes.css";
+
export default {
name: 'StandardLibrary',
components: {
BatchCopy,
bindSupplierDensityDialogAsk,
draggable,
+ Splitpanes,
+ Pane
},
dicts: ["sys_factory", "sys_sub_lab", "sys_samp_type"],
data() {
@@ -502,9 +515,10 @@
if (!value) {銆�銆�銆�銆�//濡傛灉鏁版嵁涓虹┖锛屽垯杩斿洖true,鏄剧ず鎵�鏈夌殑鏁版嵁椤�
return true
}
+ return data.label.indexOf(value) !== -1;
// 鏌ヨ鍒楄〃鏄惁鏈夊尮閰嶆暟鎹紝灏嗗�煎皬鍐欙紝鍖归厤鑻辨枃鏁版嵁
- let val = value.toLowerCase()
- return this.chooseNode(val, data, node) // 璋冪敤杩囨护浜屽眰鏂规硶
+ // let val = value.toLowerCase()
+ // return this.chooseNode(val, data, node) // 璋冪敤杩囨护浜屽眰鏂规硶
},
// 杩囨护鐖惰妭鐐� / 瀛愯妭鐐� (濡傛灉杈撳叆鐨勫弬鏁版槸鐖惰妭鐐逛笖鑳藉尮閰嶏紝鍒欒繑鍥炶鑺傜偣浠ュ強鍏朵笅鐨勬墍鏈夊瓙鑺傜偣锛涘鏋滃弬鏁版槸瀛愯妭鐐癸紝鍒欒繑鍥炶鑺傜偣鐨勭埗鑺傜偣銆俷ame鏄腑鏂囧瓧绗︼紝enName鏄嫳鏂囧瓧绗�.
chooseNode (value, data, node) {
@@ -700,10 +714,10 @@
.children.find((a) => a.label == this.addOb.sampleType)
.children.find((a) => a.label == this.addOb.sample)
.children.push({
- code: "[5]",
- label: this.addOb.model,
- value: this.addOb.model,
- });
+ code: "[5]",
+ label: this.addOb.model,
+ value: this.addOb.model,
+ });
this.addLoad = false;
})
.catch((e) => {
@@ -1207,25 +1221,52 @@
},
};
</script>
-<style scoped>
-.standard {
- padding-top: 10px;
+
+<style scoped lang="scss">
+.search_form {
display: flex;
- height: calc(100vh - 90px);
+ justify-content: space-between;
+
+ .options_button {
+ margin-top: 3px;
+ }
}
-.left {
- width: 330px;
- height: calc(100% - 40px - 10px);
- background-color: white;
- padding: 15px;
+.avatar-uploader ::v-deep .el-upload {
+ border: 1px dashed #666666;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden;
}
+.avatar-uploader ::v-deep .el-upload:hover {
+ border-color: #409EFF;
+}
+
+.avatar-uploader-icon {
+ font-size: 20px;
+ color: #8c939d;
+ width: 90px;
+ height: 90px;
+ line-height: 90px;
+ text-align: center;
+}
+
+.avatar {
+ width: 90px;
+ height: 90px;
+ display: block;
+}
+
+.addButton {
+ display: flex;
+ align-items: flex-start;
+}
.custom-tree-node {
width: 100%;
line-height: 32px;
}
-
.custom-tree-node .el-icon-delete {
color: #3a7bfa;
opacity: 0;
@@ -1250,28 +1291,9 @@
color: orange;
font-size: 18px;
}
-
-.right {
- margin-left: 5px;
- width: calc(100% - 350px);
- height: calc(100% - 40px);
-}
-
-.right .title {
- height: 34px;
- line-height: 34px;
- padding: 0 10px;
- background-color: white;
-}
-
-.standard_table {
- border-top: 1px solid #ebeef5;
- background-color: white;
-}
-
.product_table {
border-top: 1px solid #ebeef5;
- height: calc(100% - 235px);
+ height: calc(100vh - 398px);
margin-top: 5px;
background-color: white;
user-select: none;
@@ -1279,114 +1301,5 @@
.product_table .el-table {
height: calc(100% - 35px) !important;
-}
-
-.sort {
- width: 80% !important;
- overflow: hidden;
-}
-
->>>.el-table__body-wrapper {
- height: calc(100% - 46px) !important;
-}
-
->>>.header-class {
- height: 40px !important;
-}
-
->>>.header-class th.el-table__cell>.cell {
- line-height: 20px !important;
- padding-top: 0 !important;
- padding-bottom: 0 !important;
-}
-
->>>.el-table__row {
- height: 35px !important;
-}
-
-.search {
- border-bottom: 1px solid #ebeef5;
- margin-bottom: 16px;
- display: flex;
- align-items: center;
- box-sizing: border-box;
- padding-bottom: 10px;
-}
-
-.search-item {
- display: flex;
- align-items: center;
- flex-wrap: wrap;
-}
-
-.search-item .el-row {
- display: flex;
- align-items: center;
-}
-
-.search-item .el-col {
- margin-left: 0;
-}
-
-.more-edit .dialog-footer {
- position: absolute;
- top: 15px;
- right: 70px;
-}
-
->>>.is-disabled .el-textarea__inner {
- background: rgba(0, 0, 0, 0.05) !important;
-}
-</style>
-<style scoped>
-.standard .el-tree-node__content {
- height: 32px;
- font-size: 14px;
- border-radius: 2px;
-}
-
-.standard .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
- color: #3a7bfa;
-}
-
-.standard .has-gutter .el-table__cell .cell {
- line-height: 34px;
- background-color: #f8f8f8;
-}
-
-.standard .has-gutter .el-table__cell {
- background-color: #fafafa !important;
-}
-
-.standard .standard_table .el-table__row .cell {
- font-size: 14px;
-}
-
-.standard .el-table .warning-row .cell {
- color: #bababa;
-}
-
-.standard .el-table-filter__list {
- max-height: 400px;
- overflow-y: auto;
-}
-
-.standard .el-upload {
- width: 100%;
-}
-
-.standard .el-upload-dragger {
- width: 100%;
-}
-
-.standard .handleBtn.is-disabled .el-upload:focus {
- color: #c0c4cc !important;
-}
-
-.standard .avatar-uploader .el-upload {
- height: 80px;
- display: flex;
- align-items: center;
- justify-content: center;
}
</style>
--
Gitblit v1.9.3