Browse Source

2024-04-09

master
zelian_wu 2 years ago
parent
commit
d505c87273
  1. 3
      src/api/test/testProperties.js
  2. 26
      src/views/modules/base/propertiesItem/bmPropertiesModel.vue
  3. 3
      src/views/modules/base/propertiesItem/propertiesItem.vue
  4. 25
      src/views/modules/base/propertiesItem/propertiesModel.vue
  5. 147
      src/views/modules/common/transferTable.vue
  6. 2
      src/views/modules/project/projectInfo/com_project_puotation.vue
  7. 2
      src/views/modules/project/projectInfo/com_project_sample.vue
  8. 2
      src/views/modules/project/projectInfo/com_project_test.vue
  9. 26
      src/views/modules/quotation/requestForQuote.vue
  10. 3
      src/views/modules/test/requestForTest.vue
  11. 84
      src/views/modules/test/testAttribute/testProperties.vue

3
src/api/test/testProperties.js

@ -5,3 +5,6 @@ export const updateTestPropertiesList = (data)=>createAPI(`/test/properties/upda
export const searchTestPropertiesList = (data)=>createAPI(`/test/properties/search`,'post',data)
export const searchModalDetails = (data)=>createAPI(`/properties/searchModalDetails`,'post',data)
export const searchTestPropertiesItem = (data)=>createAPI(`/test/properties/item`,'post',data)
export const removeTestPropertiesItem = (data)=>createAPI(`/test/properties/remove`,'post',data)
export const saveTestPropertiesItem = (data)=>createAPI(`/test/properties/save`,'post',data)
export const searchTestPropertiesItemList = (data)=>createAPI(`/test/properties/item/list`,'post',data)

26
src/views/modules/base/propertiesItem/bmPropertiesModel.vue

@ -12,17 +12,19 @@
</el-select>
</el-form-item>
<el-form-item :label="'是否启用'">
<el-select clearable v-model="searchData.active" style="width: 120px">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
<el-option label="全部" value=""></el-option>
</el-select>
<!-- <el-select clearable v-model="searchData.active" style="width: 120px">-->
<!-- <el-option label="Y" value="Y"></el-option>-->
<!-- <el-option label="N" value="N"></el-option>-->
<!-- <el-option label="全部" value=""></el-option>-->
<!-- </el-select>-->
<dict-data-select v-model="searchData.active" clearable dict-type="sys_status"
:use-default-value="false" style="width: 120px"></dict-data-select>
</el-form-item>
<el-form-item :label="'是否可配置'">
<el-select clearable v-model="searchData.editFlag" style="width: 120px">
<el-option label="全部" value=""></el-option>
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
<el-option label="全部" value=""></el-option>
</el-select>
</el-form-item>
<el-form-item :label="' '">
@ -59,9 +61,13 @@
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
<template slot-scope="{row,$index}">
<div v-if="item.columnProp !== 'active' ">
<span v-if="!item.columnHidden">{{ row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</div>
<span v-else
:style="{color:row.active === 'Y'?'#67C23A':'red'}">{{ row.active === 'Y' ? '启用' : '停用' }}</span>
</template>
</el-table-column>
<el-table-column
@ -213,8 +219,10 @@
import {
getBUList,
} from "@/api/base/site.js"
import DictDataSelect from "../../sys/dict-data-select.vue";
export default {
components: {
DictDataSelect,
Chooselist
},
watch: {

3
src/views/modules/base/propertiesItem/propertiesItem.vue

@ -115,7 +115,8 @@
<!-- <el-option label="ECN" value="ECN"></el-option>-->
<!-- <el-option label="TEST" value="TEST"></el-option>-->
<!-- <el-option label="询价" value="PRICECHECK"></el-option>-->
<el-option :value="item.dictValue" :label="item.dictLabel" v-for="item in itemTypeList" :key="item.dictValue"></el-option>
<el-option :value="item.functionType" :label="item.functionTypeDesc" v-for="item in itemTypeList" :key="item.functionType"></el-option>
<!-- <el-option :value="item.dictValue" :label="item.dictLabel" v-for="item in itemTypeList" :key="item.dictValue"></el-option>-->
</el-select>
</el-form-item>
<el-form-item :label="'是否值可选'" prop="valueChooseFlag" :rules="rules.valueChooseFlagType">

25
src/views/modules/base/propertiesItem/propertiesModel.vue

@ -175,8 +175,8 @@
<el-form-item :label="'模板类型'" prop="functionGroup">
<!-- <dict-data-select :disabled="this.modalData.flag !== '1'" ref="dialogDictDataSelect" v-model="modalData.functionGroup" clearable :dict-type="modalData.group"-->
<!-- :use-default-value="false"></dict-data-select>-->
<el-select filterable style="width: 100%;" @change="changeMenu" v-model="modalData.functionGroup" :disabled="this.modalData.flag !== '1'">
<el-option :label="item.functionGroupDesc" :value="item.functionGroup" v-for="item in relationshipList" :key="item.functionGroup"></el-option>
<el-select filterable style="width: 100%;" v-model="modalData.functionGroup" :disabled="this.modalData.flag !== '1'">
<el-option :label="item.functionGroupDesc" :value="item.functionGroup" v-for="item in copyRelationshipList" :key="item.functionGroup"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -500,11 +500,12 @@ export default {
this.detailData.codeNo = this.detailData.codeNo.toUpperCase()
this.detailData.itemNo = this.detailData.itemNo.toUpperCase()
}
}
},
},
data() {
return {
relationshipList:[],
copyRelationshipList:[],
typeList:[],
selectionBU: [],
BUDialog: false,
@ -571,7 +572,7 @@ export default {
columnProp: 'functionTypeDesc',
headerAlign: "center",
align: "center",
columnLabel: '模板类型',
columnLabel: '模板分组',
columnHidden: false,
columnImage: false,
columnSortable: false,
@ -587,7 +588,7 @@ export default {
columnProp: 'functionGroupDesc',
headerAlign: "center",
align: "center",
columnLabel: '模板分组',
columnLabel: '模板类型',
columnHidden: false,
columnImage: false,
columnSortable: false,
@ -923,8 +924,11 @@ export default {
},
methods: {
changeMenu(val){
this.searchData.functionGroup = '';
this.modalData.functionGroup='';
if (this.modalFlag){
this.modalData.functionGroup='';
}else {
this.searchData.functionGroup = '';
}
this.getDataList();
this.searchAllTypeRelationshipList(val)
// this.$nextTick(()=>{
@ -937,7 +941,11 @@ export default {
}
searchAllTypeRelationshipList(params).then(({data})=>{
if (data && data.code === 0){
this.relationshipList = data.rows;
if (this.modalFlag){
this.copyRelationshipList = data.rows;
}else {
this.relationshipList = data.rows;
}
}else {
this.$message.warning(data.msg)
}
@ -1083,6 +1091,7 @@ export default {
updateBy: this.$store.state.user.name,
};
this.modalDisableFlag = false;
this.copyRelationshipList = this.relationshipList
this.modalFlag = true;
this.$nextTick(()=>{
this.$refs['dialogDictDataSelect'].initOption();

147
src/views/modules/common/transferTable.vue

@ -0,0 +1,147 @@
<script>
export default {
name: "transferTable",
props: {
dataList: {
type: Array,
default: () => []
},
modelList: {
type: Array,
default: () => []
}
},
model:{
prop: "modelList",
event: "change"
},
data(){
return{
searchModel: {
itemNo: "",
itemDesc: ""
},
searchTableList: [],
dataTableList: []
}
},
methods:{
handleSearch(){
this.$emit("search", this.searchModel)
},
handleAdd(){
if (this.searchTableList.length === 0){
this.$message.warning("请选择需要新增的属性")
return
}
let params = JSON.parse(JSON.stringify(this.searchModel))
params.searchTableList = JSON.parse(JSON.stringify(this.searchTableList))
this.$emit("add",params)
},
handleDelete() {
if (this.dataTableList.length === 0){
this.$message.warning("请选择需要删除的属性")
return
}
let params = JSON.parse(JSON.stringify(this.searchModel))
params.dataTableList = JSON.parse(JSON.stringify(this.dataTableList))
this.$emit("delete",params)
},
handleRowClick(row, column, event, table) {
this.$refs[table].toggleRowSelection(row)
},
handleSelectionChange(selection, table) {
this[`${table}List`] = selection
}
}
}
</script>
<template>
<div>
<el-form :model="searchModel" label-position="top" :inline="true">
<el-form-item label="属性编码">
<el-input v-model="searchModel.itemNo"></el-input>
</el-form-item>
<el-form-item label="属性名称">
<el-input v-model="searchModel.itemDesc"></el-input>
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" @click="handleSearch">查询</el-button>
</el-form-item>
</el-form>
<el-row :gutter="20">
<!--表格1-->
<el-col :span="11">
<span style="font-size: 12px">可选属性</span>
<el-table
height="400px"
:data="dataList"
ref="searchTable"
@selection-change="(selection)=>handleSelectionChange(selection,'searchTable')"
@row-click="(row,column,event)=>handleRowClick(row,column,event,'searchTable')"
border>
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="itemNo"
header-align="center"
align="left"
label="属性编码">
</el-table-column>
<el-table-column
prop="itemDesc"
header-align="center"
align="left"
label="属性名称">
</el-table-column>
</el-table>
</el-col>
<!--按钮-->
<el-col :span="2">
<div style="text-align: center;display: flex;flex-direction: column;align-items: center;justify-content: center;height: 400px">
<div><el-button type="primary" @click="handleAdd">新增<i class="el-icon-d-arrow-right el-icon--right"></i></el-button></div>
<div><el-button type="primary" @click="handleDelete" icon="el-icon-d-arrow-left" style="margin-top: 10px">删除</el-button></div>
</div>
</el-col>
<!--表格2-->
<el-col :span="11">
<span style="font-size: 12px">已有属性</span>
<el-table
height="400px"
:data="modelList"
ref="dataTable"
@selection-change="(selection)=>handleSelectionChange(selection,'dataTable')"
@row-click="(row,column,event)=>handleRowClick(row,column,event,'dataTable')"
border>
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="itemNo"
header-align="center"
align="left"
label="属性编码">
</el-table-column>
<el-table-column
prop="itemDesc"
header-align="center"
align="left"
label="属性名称">
</el-table-column>
</el-table>
</el-col>
</el-row>
</div>
</template>
<style scoped>
</style>

2
src/views/modules/project/projectInfo/com_project_puotation.vue

@ -332,7 +332,7 @@
serialNumber: '102001Table1quotationStatus',
tableId: '102001Table1',
tableName: '询价信息表',
columnProp: 'quotationResultStatus',
columnProp: 'quotationStatus',
headerAlign: 'center',
align: 'center',
columnLabel: '状态',

2
src/views/modules/project/projectInfo/com_project_sample.vue

@ -315,7 +315,7 @@
serialNumber: '103001Table1ProofingStatus',
tableId: '103001Table1',
tableName: '打样信息表',
columnProp: 'proofingResultStatus',
columnProp: 'proofingStatus',
headerAlign: 'center',
align: 'center',
columnLabel: '状态',

2
src/views/modules/project/projectInfo/com_project_test.vue

@ -297,7 +297,7 @@ export default {
serialNumber: '103001Table1TestStatus',
tableId: '103001Table1',
tableName: '测试信息表',
columnProp: 'testResultStatus',
columnProp: 'testStatus',
headerAlign: 'center',
align: 'center',
columnLabel: '状态',

26
src/views/modules/quotation/requestForQuote.vue

@ -204,9 +204,9 @@
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item prop="trackerName">
<span style="cursor: pointer" slot="label" @click="getBaseList(2000)"><a herf="#">跟单员</a></span>
<el-input v-model="modalData.trackerName"></el-input>
<el-form-item label="Delivery Terms" prop="deliveryTerms">
<dict-data-select v-if="modalFlag" v-model="modalData.deliveryTerms" clearable dict-type="delivery_terms"
:use-default-value="modalData.flag === '1'"></dict-data-select>
</el-form-item>
</el-col>
</el-row>
@ -239,27 +239,27 @@
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item prop="quoterName">
<span style="cursor: pointer" slot="label" @click="getBaseList(2002)"><a herf="#">报价专员</a></span>
<el-input v-model="modalData.quoterName"></el-input>
<el-form-item label="Quote Type" prop="quoteType">
<dict-data-select v-if="modalFlag" v-model="modalData.quoteType" clearable dict-type="quote_type"
:use-default-value="modalData.flag === '1'"></dict-data-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="4">
<el-form-item label="Delivery Terms" prop="deliveryTerms">
<dict-data-select v-if="modalFlag" v-model="modalData.deliveryTerms" clearable dict-type="delivery_terms"
:use-default-value="modalData.flag === '1'"></dict-data-select>
<el-form-item prop="trackerName">
<span style="cursor: pointer" slot="label" @click="getBaseList(2000)"><a herf="#">跟单员</a></span>
<el-input v-model="modalData.trackerName"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="Quote Type" prop="quoteType">
<dict-data-select v-if="modalFlag" v-model="modalData.quoteType" clearable dict-type="quote_type"
:use-default-value="modalData.flag === '1'"></dict-data-select>
<el-form-item prop="quoterName">
<span style="cursor: pointer" slot="label" @click="getBaseList(2002)"><a herf="#">报价专员</a></span>
<el-input v-model="modalData.quoterName"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-row :gutter="10" v-if="false">
<el-col :span="24">
<el-form-item label="备注" style="display: block;min-height: 90px">
<el-input type="textarea" :autosize="{minRows: 3, maxRows: 3}" resize='none'

3
src/views/modules/test/requestForTest.vue

@ -307,7 +307,7 @@
<div class="rq">
<el-button v-if="!modalData.testNo" @click="saveData" plain type="primary" style="position:absolute;margin-top: 10px;margin-right: 10px;right: 0;z-index: 1">下一步</el-button>
<el-tabs v-model="activeTab" @tab-click="dialogTabClick">
<el-tab-pane label="基本信息" :disabled="!activeTabList.includes('attribute')" name="attribute" v-if="modalData.flag !== '1'">
<el-tab-pane label="基本信息" :disabled="!activeTabList.includes('attribute')" name="attribute" v-if="modalData.testNo">
<test-properties v-if="modalFlag" v-model:data-list="testPropertiesList" ref="dialogTestAttribute" :test-no="modalData.testNo"></test-properties>
</el-tab-pane>
<el-tab-pane label="基本信息" :disabled="!activeTabList.includes('attribute')" name="attribute" v-else>
@ -3113,6 +3113,7 @@
this.activeTab = 'attribute';
this.activeTabList = ['attribute']
this.dialogProperties = [];
// this.testPropertiesList = this.copyTestPropertiesList;
this.copyTestPropertiesList = [];
},
checkSelectable(row,index){

84
src/views/modules/test/testAttribute/testProperties.vue

@ -1,12 +1,18 @@
<script>
import {
getTestPropertiesList,
removeTestPropertiesItem,
saveTestPropertiesItem,
searchTestPropertiesItem,
searchTestPropertiesItemList,
searchTestPropertiesList,
updateTestPropertiesList
} from "../../../../api/test/testProperties";
import TransferTable from "../../common/transferTable.vue";
export default {
name: "testProperties",
components: {TransferTable},
props:{
dataList:{
type: Array,
@ -177,10 +183,45 @@ export default {
fixed: '',
},
],
searchDataList:[],
}
},
methods:{
getTestProperties(){
searchAttributeList(data){
let params= JSON.parse(JSON.stringify(data))
params.site=this.$store.state.user.site;
params.list = this.dataList;
this.searchDataList = [];
searchTestPropertiesItemList(params).then(({data}) => {
if (data && data.code === 0){
this.searchDataList = data.rows;
this.attributeSaveDialog = true;
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
saveTestPropertiesItem(params){
let i = 0;
let arr = params.searchTableList.map(item=>{
item.testNo = this.testNo;
item.seqNo = i++;
return item
})
saveTestPropertiesItem(arr).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg);
this.getTestProperties(params)
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error)
})
},
getTestProperties(searchData){
let params = {
site:this.$store.state.user.site,
testNo: this.testNo
@ -188,6 +229,11 @@ export default {
getTestPropertiesList(params).then(({data})=>{
if (data && data.code === 0){
this.$emit("change",data.rows)
if (searchData){
this.$nextTick(()=>{
this.searchAttributeList(searchData)
})
}
}else {
this.$message.warning(data.msg)
}
@ -222,7 +268,19 @@ export default {
},
clickSaveBtn(){
//
this.attributeSaveDialog = true;
this.searchAttributeList({})
},
removeTestPropertiesItem(params){
removeTestPropertiesItem(params.dataTableList).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg);
this.getTestProperties(params)
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error)
})
}
},
}
@ -302,16 +360,15 @@ export default {
</el-table>
</div>
<el-dialog title="属性项目" v-drag :visible.sync="attributeSaveDialog" append-to-body>
<el-row :gutter="20">
<!--表格1-->
<el-col :span="8"></el-col>
<!--按钮-->
<el-col :span="8"></el-col>
<!--表格2-->
<el-col :span="8">
</el-col>
</el-row>
<transfer-table v-if="attributeSaveDialog"
v-model="dataList"
:data-list="searchDataList"
@add="saveTestPropertiesItem"
@delete="removeTestPropertiesItem"
@search="searchAttributeList"></transfer-table>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="attributeSaveDialog = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
@ -325,4 +382,7 @@ export default {
/deep/ .el-input .el-input--medium{
line-height: 20px;
}
/deep/ .el-input-number .el-input--medium{
line-height: 20px;
}
</style>
Loading…
Cancel
Save