<template>
|
<div class="custom-manage">
|
<div class="tab-view">
|
<el-tabs v-model="activeName" @tab-click="tabsClick">
|
<el-tab-pane label="纤度登记表" name="first"></el-tab-pane>
|
<el-tab-pane label="纤度检验表" name="second"></el-tab-pane>
|
</el-tabs>
|
</div>
|
|
<div class="filter">
|
<div class="filter-card">
|
<CommonSearch :show-add="false" :show-download="false" :amount-view="false" :show-action-btn="false"
|
placeholder="请输入关键词" @searchClick="onFilterSearch">
|
<template slot="leftButton">
|
<el-button size="small" type="primary" @click="cancelClick">放弃</el-button>
|
<el-button size="small" type="primary" @click="saveClick">保存</el-button>
|
</template>
|
</CommonSearch>
|
</div>
|
</div>
|
|
<div class="body" v-if="activeName == 'first'">
|
<div class="body-l">
|
<el-form ref="form" class="form-box" :model="form" :rules="rules" label-position="left" label-width="70px">
|
<el-form-item label="编号" prop="clientName" class="form-item">
|
<el-input v-model="form.clientName" placeholder="请输入">
|
</el-input>
|
</el-form-item>
|
<el-form-item label="落丝时间" prop="signTime" class="form-item">
|
<el-date-picker v-model="form.signTime" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"
|
style="width:100%">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="庄口" prop="deliverType" class="form-item">
|
<el-select v-model="form.deliverType" placeholder="请选择">
|
<el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="车间" prop="deliverType" class="form-item">
|
<el-select v-model="form.deliverType" placeholder="请选择">
|
<el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="规格" prop="deliverType" class="form-item">
|
<el-select v-model="form.deliverType" placeholder="请选择">
|
<el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="组别" prop="deliverType" class="form-item">
|
<el-select v-model="form.deliverType" placeholder="请选择" style="width: 100%">
|
<el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="回数" prop="amount" class="form-item">
|
<el-row>
|
<el-col :span="11">
|
<el-input v-model.number="form.amount" placeholder="请输入" show-word-limit
|
style="width: 100%"></el-input>
|
</el-col>
|
<el-col :span="2" style="margin:0 auto;text-align:center;">-</el-col>
|
<el-col :span="11">
|
<el-input v-model.number="form.amount" placeholder="请输入" show-word-limit
|
style="width: 100%"></el-input>
|
</el-col>
|
</el-row>
|
</el-form-item>
|
<el-form-item label="车号" prop="clientName" class="form-item">
|
<el-input v-model="form.clientName" placeholder="请输入">
|
</el-input>
|
</el-form-item>
|
</el-form>
|
<div class="list-view">
|
<TableCommonView ref="tableListRef" :colOpenShow="false" v-loading="loading" :table-list="tableList"
|
@selTableCol="selTableCol">
|
</TableCommonView>
|
</div>
|
</div>
|
<div class="body-r">
|
纤度:
|
<p>19.00</p>
|
</div>
|
</div>
|
<div class="body-two body" v-if="activeName == 'second'">
|
<div class="body-two-t">纤度检验表</div>
|
<el-form ref="form" class="form-box" :model="form" :rules="rules" label-position="right" label-width="60px">
|
<div class="form-box-t">
|
<el-form-item label="编号" prop="clientName" class="form-item">
|
1234546677
|
</el-form-item>
|
<el-form-item label="车间" prop="deliverType" class="form-item">
|
<el-select v-model="form.deliverType" placeholder="请选择">
|
<el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="组别" prop="deliverType" class="form-item">
|
<el-select v-model="form.deliverType" placeholder="请选择" style="width: 100%">
|
<el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="回数" prop="amount" class="form-item">
|
<el-input v-model.number="form.amount" placeholder="请输入" show-word-limit
|
style="width: 100%"></el-input>
|
</el-form-item>
|
<el-form-item label="规格" prop="clientName" class="form-item">
|
<el-input v-model="form.clientName" placeholder="请输入">
|
</el-input>
|
</el-form-item>
|
<el-form-item label="日期" prop="signTime" class="form-item">
|
<el-date-picker v-model="form.signTime" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"
|
style="width:100%">
|
</el-date-picker>
|
</el-form-item>
|
</div>
|
<div class="list-view">
|
<el-table ref="multipleTable" :data="tableTwoList.tableInfomation" tooltip-effect="dark"
|
style="width: 100%">
|
<el-table-column label="车号" prop="templateName" width="100">
|
</el-table-column>
|
<el-table-column label="下差纤度" prop="name" width="100" align="center">
|
<template v-for="(item, i) in tableTwoList.lower">
|
<el-table-column align="center" :key="i" :prop="item.prop" :label="item.label"
|
:width="item.width" :min-width="item.min" show-overflow-tooltip
|
:sortable="item.sortable">
|
</el-table-column>
|
</template>
|
</el-table-column>
|
<el-table-column label="目的纤度" prop="name" width="100" align="center">
|
<template v-for="(item, i) in tableTwoList.objective">
|
<el-table-column align="center" :key="i" :prop="item.prop" :label="item.label"
|
:width="item.width" :min-width="item.min" show-overflow-tooltip
|
:sortable="item.sortable">
|
</el-table-column>
|
</template>
|
</el-table-column>
|
<el-table-column label="上差纤度" prop="name" width="100" align="center">
|
<template v-for="(item, i) in tableTwoList.upper">
|
<el-table-column align="center" :key="i" :prop="item.prop" :label="item.label"
|
:width="item.width" :min-width="item.min" show-overflow-tooltip
|
:sortable="item.sortable">
|
</el-table-column>
|
</template>
|
</el-table-column>
|
<el-table-column prop="valueRange" label="偏差" width="120">
|
</el-table-column>
|
<el-table-column prop="unit" label="总差" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="valueRange" label="野纤" width="120">
|
</el-table-column>
|
<el-table-column prop="unit" label="大野" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="valueRange" label="特野" width="120">
|
</el-table-column>
|
<el-table-column prop="unit" label="等级" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="valueRange" label="II度" width="120">
|
</el-table-column>
|
<el-table-column prop="unit" label="清洁" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="valueRange" label="洁净" width="120">
|
</el-table-column>
|
<el-table-column prop="unit" label="备注" show-overflow-tooltip>
|
</el-table-column>
|
</el-table>
|
</div>
|
<div class="form-box-b">
|
<el-form-item label="平均纤度" prop="clientName" class="form-item-two" label-width="100px">
|
1234546677
|
</el-form-item>
|
<el-form-item label="公量纤度" prop="deliverType" class="form-item" label-width="100px">
|
<el-input v-model="form.clientName" placeholder="请输入">
|
</el-input>
|
</el-form-item>
|
<el-form-item label="偏差" prop="clientName" class="form-item-two">
|
0.98
|
</el-form-item>
|
<el-form-item label="总差" prop="clientName" class="form-item-two">
|
0.98
|
</el-form-item>
|
<el-form-item label="车组等级" prop="deliverType" class="form-item-two" label-width="100px">
|
4A
|
</el-form-item>
|
<el-form-item label="II度" prop="amount" class="form-item">
|
<el-input v-model="form.clientName" placeholder="请输入">
|
</el-input>
|
</el-form-item>
|
<el-form-item label="清洁" prop="clientName" class="form-item">
|
<el-input v-model="form.clientName" placeholder="请输入">
|
</el-input>
|
</el-form-item>
|
<el-form-item label="洁净" prop="signTime" class="form-item">
|
<el-input v-model="form.clientName" placeholder="请输入">
|
</el-input>
|
</el-form-item>
|
<el-form-item label="庄口工艺单编号" prop="signTime" class="form-item" label-width="110px">
|
<el-input v-model="form.clientName" placeholder="请输入">
|
</el-input>
|
</el-form-item>
|
<el-form-item label="检验员" prop="signTime" class="form-item">
|
<el-input v-model="form.clientName" placeholder="请输入">
|
</el-input>
|
</el-form-item>
|
</div>
|
</el-form>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import { getFollowRecordList } from "@/api/productManage/silkRegisterForm.js"
|
import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
|
export default {
|
name: "silkRegisterAddPage",
|
props: {},
|
mixins: [pageMixin],
|
components: {
|
},
|
computed: {},
|
data() {
|
return {
|
tableList: {},
|
loading: false,
|
activeName: "first",
|
searchOptions: [],
|
search_map: {},
|
is_public: true,
|
tableColumn: [
|
{ label: "车号", prop: "name", min: 100, default: true }, // 客户名称
|
{ label: "纤度值", prop: "member_name", default: true }, // 销售负责人
|
{ label: "数量", prop: "client_level", default: true }, // 重要级别
|
{ label: "纤度合计", prop: "next_visit_time", min: 90, default: true }, // 下次回访日期
|
],
|
showCol: ['车号', '纤度值', '数量', '纤度合计'],
|
deliveryTypeList: [],
|
form: {},
|
rules: {
|
clientName: [
|
{ required: true, message: "请选择客户名称", trigger: "change" },
|
],
|
},
|
tableTwoList: {
|
tableInfomation: [],
|
lower: [
|
{ label: "14", prop: "name", min: 100, default: true },
|
{ label: "14.5", prop: "member_name", default: true },
|
{ label: "15", prop: "client_level", default: true },
|
{ label: "15.5", prop: "next_visit_time", min: 90, default: true },
|
{ label: "16", prop: "name", min: 100, default: true },
|
{ label: "16.5", prop: "member_name", default: true },
|
{ label: "17", prop: "client_level", default: true },
|
{ label: "17.5", prop: "next_visit_time", min: 90, default: true },
|
{ label: "18", prop: "client_level", default: true },
|
{ label: "18.5", prop: "next_visit_time", min: 90, default: true },
|
],
|
objective: [
|
{ label: "19", prop: "name", min: 100, default: true },
|
{ label: "19.5", prop: "member_name", default: true },
|
{ label: "20", prop: "client_level", default: true },
|
{ label: "20.5", prop: "next_visit_time", min: 90, default: true },
|
{ label: "21", prop: "name", min: 100, default: true },
|
],
|
upper: [
|
{ label: "21.5", prop: "name", min: 100, default: true },
|
{ label: "22", prop: "member_name", default: true },
|
{ label: "22.5", prop: "next_visit_time", min: 90, default: true },
|
{ label: "23", prop: "name", min: 100, default: true },
|
{ label: "23.5", prop: "member_name", default: true },
|
{ label: "24", prop: "client_level", default: true },
|
{ label: "24.5", prop: "next_visit_time", min: 90, default: true },
|
{ label: "25", prop: "client_level", default: true },
|
{ label: "25.5", prop: "next_visit_time", min: 90, default: true },
|
{ label: "26", prop: "client_level", default: true },
|
{ label: "26.5", prop: "next_visit_time", min: 90, default: true },
|
],
|
},
|
}
|
},
|
created() {
|
let query = this.$route.query;
|
if (query) {
|
this.activeName = query.activeName ? query.activeName : "first";
|
}
|
this.setTable()
|
this.search_map = {
|
is_public: this.is_public
|
}
|
this.getData()
|
},
|
methods: {
|
setTable() {
|
this.tableList = {
|
selectIndex: false,
|
headerColor: 'red',
|
tableInfomation: [],
|
allcol: [],
|
showcol: this.showCol,
|
tableColumn: this.setColumnVisible(this.showCol)
|
}
|
this.tableList.allcol = this.tableList.tableColumn.filter(ele => !ele.default).map(ele => ele.label);
|
this.searchOptions = []
|
for (let i = 0; i < this.tableList.tableColumn.length; i++) {
|
const label = this.tableList.tableColumn[i].label
|
const value = this.tableList.tableColumn[i].prop
|
this.searchOptions.push({ value: value, label: label })
|
}
|
},
|
setColumnVisible(showCol) {
|
return this.tableColumn.map(ele => {
|
return {
|
...ele,
|
isShowColumn: showCol.includes(ele.label)
|
}
|
})
|
},
|
selTableCol(val) {
|
this.showcol = val;
|
this.tableList.tableColumn = this.setColumnVisible(val);
|
},
|
// 请求数据
|
async getData() {
|
this.loading = true
|
await getFollowRecordList({
|
search_map: this.search_map,
|
page: this.pagerOptions.currPage,
|
pageSize: this.pagerOptions.pageSize
|
})
|
.then((res) => {
|
console.log(res)
|
if (res.code === 200) {
|
if (res.data.list && res.data.list.length > 0) {
|
const list = res.data.list.map((item) => {
|
let contact_name = ""
|
let contact_phone = ""
|
let contact_id = 0
|
let contact_wechat = ""
|
let contact_email = ""
|
let position = ""
|
if (item.contacts.length !== 0) {
|
for (let i = 0; i < item.contacts.length; i++) {
|
if (item.contacts[i].is_first) {
|
contact_name = item.contacts[i].name
|
contact_phone = item.contacts[i].phone
|
contact_id = item.contacts[i].id
|
contact_wechat = item.contacts[i].wechat
|
contact_email = item.contacts[i].email
|
position = item.contacts[i].position
|
}
|
}
|
}
|
return {
|
...item,
|
contact_name: contact_name,
|
contact_phone: contact_phone,
|
client_level: item.client_level.name,
|
client_status: item.client_status.name,
|
contact_id: contact_id,
|
member_name: item.member.username,
|
contact_wechat: contact_wechat,
|
contact_email: contact_email,
|
position: position
|
}
|
})
|
this.tableList.tableInfomation = list || []
|
this.tableTwoList.tableInfomation = []
|
this.pagerOptions.totalCount = res.data.count
|
} else {
|
this.tableList.tableInfomation = []
|
}
|
} else {
|
this.tableList.tableInfomation = []
|
this.tableTwoList.tableInfomation = []
|
}
|
this.loading = false
|
})
|
.catch((err) => {
|
console.log(err)
|
this.tableList.tableInfomation = []
|
this.loading = false
|
})
|
},
|
tabsClick(tab) {
|
console.log(tab.name)
|
if (tab.name === "first") {
|
this.is_public = true
|
} else {
|
this.is_public = false
|
}
|
this.search_map = {
|
is_public: this.is_public
|
}
|
this.pagerOptions.currPage = 1
|
this.getData()
|
},
|
// 搜索
|
onFilterSearch(searchText) {
|
this.search_map = {
|
is_public: this.is_public,
|
name: searchText
|
}
|
this.pagerOptions.currPage = 1
|
this.getData()
|
},
|
// 放弃
|
cancelClick() {
|
|
},
|
saveClick() {
|
|
},
|
|
}
|
}
|
</script>
|
|
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
<style lang="scss" scoped>
|
::v-deep {
|
.el-tabs--top .el-tabs__item.is-top:nth-child(2) {
|
padding-left: 25px;
|
}
|
|
.el-tabs__item {
|
padding: 0 25px;
|
height: 45px;
|
}
|
}
|
|
.custom-manage {
|
height: 100%;
|
overflow: hidden;
|
|
.filter {
|
height: 80px;
|
display: flex;
|
align-items: center;
|
padding: 0 20px 0 20px;
|
|
&-card {
|
height: 80px;
|
display: flex;
|
align-items: center;
|
box-sizing: border-box;
|
padding: 10px 20px;
|
flex: 1;
|
border-radius: 12px;
|
background-color: #fff;
|
}
|
}
|
|
.body {
|
box-sizing: border-box;
|
padding: 10px 10px;
|
border-radius: 12px;
|
height: calc(100% - 139px - 10px);
|
width: calc(100% - 20px);
|
margin: 0 auto;
|
margin-top: 10px;
|
overflow: hidden;
|
background: #fff;
|
|
.body-l {
|
background-color: #fff;
|
border-radius: 12px;
|
height: calc(100% - 180px - 20px);
|
width: calc(100% - 420px);
|
float: left;
|
overflow: hidden;
|
padding: 10px 10px;
|
|
.form-box {
|
width: 100%;
|
height: 100%;
|
overflow: hidden;
|
}
|
|
.form-box {
|
width: 100%;
|
height: 180px;
|
overflow: hidden;
|
|
.form-item {
|
width: calc(33% - 10px);
|
margin-right: 15px;
|
float: left;
|
|
&:nth-of-type(3n) {
|
margin-right: 0;
|
}
|
}
|
}
|
|
.list-view {
|
height: calc(100% - 0px);
|
overflow: hidden;
|
}
|
}
|
|
.body-r {
|
background-color: #67a0ff;
|
color: #333;
|
font-size: 28px;
|
height: calc(100% - 40px);
|
width: 340px;
|
float: right;
|
padding: 20px 10px;
|
|
p {
|
font-size: 32px;
|
color: #fff;
|
}
|
}
|
|
.btn-pager {
|
display: flex;
|
margin-top: 10px;
|
|
.page {
|
margin-left: auto;
|
}
|
}
|
}
|
|
.body-two {
|
.body-two-t {
|
text-align: center;
|
width: 100%;
|
font-size: 16px;
|
line-height: 30px;
|
font-weight: bold;
|
margin-bottom: 10px;
|
}
|
|
.form-box {
|
width: 100%;
|
height: calc(100% - 40px);
|
overflow: hidden;
|
}
|
|
.form-box-t {
|
width: 100%;
|
height: 60px;
|
overflow: hidden;
|
|
.form-item {
|
width: calc(16% - 5px);
|
margin-right: 10px;
|
float: left;
|
|
&:nth-of-type(6n) {
|
margin-right: 0;
|
}
|
}
|
}
|
|
.list-view {
|
max-height: calc(100% - 90px);
|
overflow: hidden;
|
}
|
.form-box-b {
|
width: 100%;
|
height: 60px;
|
overflow: hidden;
|
.form-item-two{
|
width:160px;
|
float:left;
|
}
|
|
.form-item {
|
width: calc(10% - 5px);
|
margin-right: 10px;
|
float: left;
|
|
&:nth-of-type(10n) {
|
margin-right: 0;
|
}
|
}
|
}
|
}
|
}
|
</style>
|
|