Merge branch 'master' of ssh://192.168.5.5:29418/silk/silk-web into zzq
| | |
| | | import request from "@/common/untils/request.js" |
| | | // 纤度检验列表 |
| | | export function getInspectCheckList(data) { |
| | | return request({ |
| | | url: "/api-jl/v1/fineness/check?page="+ data.page+"&pageSize="+data.pageSize+"&keyword="+data.keyword, |
| | | method: "get", |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 跟进记录列表 |
| | | export function getFollowRecordList(data) { |
| | | //保存纤度检验 |
| | | export function saveCheck(data) { |
| | | return request({ |
| | | url: "/api/followRecord/list", |
| | | url: "/api-jl/v1/fineness/check", |
| | | method: "post", |
| | | data |
| | | }) |
| | | } |
| | | // 添加跟进记录 |
| | | export function getAddFollowRecord(data) { |
| | | // 纤度检验的详情 |
| | | export function getCheckDetails(data) { |
| | | return request({ |
| | | url: "/api/followRecord/add", |
| | | method: "post", |
| | | url: "/api-jl/v1/fineness/check/"+data.id, |
| | | method: "get", |
| | | data |
| | | }) |
| | | } |
| | | // 删除跟进记录 |
| | | export function getDeleteFollowRecord(data) { |
| | | // 纤度检验删除 |
| | | export function getInspectCheckDelete(data) { |
| | | return request({ |
| | | url: "/api/followRecord/delete", |
| | | url: "/api-jl/v1/fineness/check/"+data.id, |
| | | method: "delete", |
| | | data |
| | | }) |
| | | } |
| | | // 更新跟进记录 |
| | | export function getUpdateFollowRecord(data) { |
| | | return request({ |
| | | url: "/api/followRecord/update", |
| | | method: "put", |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // 联系方式列表 |
| | | export function getContactInfoList() { |
| | | return request({ |
| | | url: "/api/contactInformation/list", |
| | | method: "get" |
| | | }) |
| | | } |
| | |
| | | import request from "@/common/untils/request.js" |
| | | |
| | | // 纤度登记列表 |
| | | export function getRegisterList(data) { |
| | | return request({ |
| | | url: "/api-jl/v1/fineness/register?page="+ data.page+"&pageSize="+data.pageSize, |
| | | url: "/api-jl/v1/fineness/register?page="+ data.page+"&pageSize="+data.pageSize+"&keyword="+data.keyword, |
| | | method: "get", |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //保存纤度登记 |
| | | export function saveRegister(data) { |
| | | return request({ |
| | | url: "/api-jl/v1/fineness/register", |
| | | method: "post", |
| | | data |
| | | }) |
| | | } |
| | | // 纤度登记表的详情 |
| | | export function getRegisterDetails(data) { |
| | | return request({ |
| | | url: "/api-jl/v1/fineness/register/"+data.id, |
| | | method: "get", |
| | | data |
| | | }) |
| | | } |
| | |
| | | data |
| | | }) |
| | | } |
| | | // 纤度登记表 组别的数据 |
| | | export function getWorkshopManageList(data) { |
| | | return request({ |
| | | url: "/api-jl/v1/system/getWorkshopManageList", |
| | | method: "get", |
| | | data |
| | | }) |
| | | } |
| | | // 更新跟进记录 |
| | | export function getUpdateFollowRecord(data) { |
| | | return request({ |
| | |
| | | <i class="el-icon-user-solid icon"></i> |
| | | <span>系统设置</span> |
| | | </template> |
| | | <el-menu-item index="/systemSetting/silkStandardSetting">生丝定级标准</el-menu-item> |
| | | <el-menu-item index="/systemSetting/silkStandardSetting">生丝标准设置</el-menu-item> |
| | | <el-menu-item index="/systemSetting/silkPriceStandard">生丝定价标准</el-menu-item> |
| | | <el-menu-item index="/systemSetting/workshopManage">车间管理</el-menu-item> |
| | | <el-menu-item index="/systemSetting/dataDictionary">数据字典</el-menu-item> |
| | |
| | | <div class="page-view"> |
| | | <el-form ref="form" :model="tableList" :show-message="false" label-position="right"> |
| | | <el-table |
| | | ref="fromTable" |
| | | :border="isBorder" |
| | | :data="tableList.tableData" |
| | | style="width: 100%" |
| | | :show-summary="showSummary.show" |
| | | :summary-method="getSummaries" |
| | | :span-method="arraySpanMethod" |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#f1f3f8', color: tableList.headerColor?tableList.headerColor:'#000009', 'font-size': '14px', 'font-family': 'PingFangSC' }" |
| | | @selection-change="handleSelectionChange" |
| | | :row-key="(row) => row.productId" |
| | | > |
| | | <el-table-column v-if="selectBox" type="selection" :reserve-selection="true" width="40" align="center"> |
| | | </el-table-column> |
| | | <el-table-column v-if="tableList.isReturn" type="index" label="#" width="50" align="center"></el-table-column> |
| | | |
| | | <el-table-column |
| | | type="index" |
| | | v-if="tableList.tableColumn && tableList.tableColumn.length > 0" |
| | | label="编号" |
| | | width="50" |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | v-for="(item, i) in tableList.tableColumn" |
| | | :key="i" |
| | | :prop="item.prop" |
| | | :label="item.label" |
| | | :width="item.width" |
| | | :min-width="item.min" |
| | | align="center" |
| | | > |
| | | show-overflow-tooltip |
| | | :sortable="item.sortable" |
| | | > |
| | | <!-- 所有的表格修改为可配置表头的之后 v-if修改为v-if="item.isShowColumn" --> |
| | | <!-- 表头样式 --> |
| | | <template slot="header"> |
| | | <span v-if="item.isRequird" style="color: #f56c6c">*</span> |
| | |
| | | </template> |
| | | <!-- column样式 --> |
| | | <template slot-scope="scope"> |
| | | <!-- <template v-if="!detailEnter"> --> |
| | | <el-form-item |
| | | v-if="item.input" |
| | | label=" " |
| | | :prop="'tableData.' + scope.$index + '.' + item.prop" |
| | | :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]" |
| | | > |
| | | <el-input |
| | | v-model.trim="scope.row[item.prop]" |
| | | maxlength="50" |
| | | size="mini" |
| | | @change=" |
| | | (val) => { |
| | | commonInputChange(val, item.prop, scope.row) |
| | | } |
| | | " |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item v-else-if="item.productName" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop"> |
| | | <div class="custom-name"> |
| | | <el-autocomplete |
| | | v-model="scope.row[item.prop]" |
| | | :fetch-suggestions="querySearchAsync" |
| | | value-key="name" |
| | | style="width: calc(100% - 70px)" |
| | | <template v-if="!detailEnter"> |
| | | <el-form-item |
| | | v-if="item.input" |
| | | label=" " |
| | | :prop="'tableData.' + scope.$index + '.' + item.prop" |
| | | :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]" |
| | | > |
| | | <el-input |
| | | v-model.trim="scope.row[item.prop]" |
| | | maxlength="50" |
| | | size="mini" |
| | | @select=" |
| | | :disabled="!isOperate" |
| | | @change=" |
| | | (val) => { |
| | | handleSelectClient(val, item.prop, scope.row) |
| | | commonInputChange(val, item.prop, scope.row, scope) |
| | | } |
| | | " |
| | | ></el-autocomplete> |
| | | <div class="common-select-btn" @click="selClientClick(scope.row, item.prop, scope)"> |
| | | <i class="el-icon-circle-plus-outline" title="选择"></i> |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-else-if="item.productName" |
| | | label=" " |
| | | :prop="'tableData.' + scope.$index + '.' + item.prop" |
| | | > |
| | | <div class="custom-name"> |
| | | <el-autocomplete |
| | | v-model="scope.row[item.prop]" |
| | | :fetch-suggestions="querySearchAsync" |
| | | value-key="name" |
| | | :disabled="!isOperate" |
| | | size="mini" |
| | | @select=" |
| | | (val) => { |
| | | handleSelectClient(val, item.prop, scope.row) |
| | | } |
| | | " |
| | | ></el-autocomplete> |
| | | |
| | | <div |
| | | v-if="scope.row[item.prop] && scope.row[item.prop].length > 0 && isOperate" |
| | | class="common-select-btn" |
| | | @click="handleEditClient(scope, item.prop)" |
| | | > |
| | | <i class="el-icon-edit" title="编辑"></i> |
| | | </div> |
| | | <div |
| | | v-if="scope.row[item.prop] && scope.row[item.prop].length > 0 && isOperate" |
| | | class="common-select-btn" |
| | | @click="clearupClient(scope)" |
| | | > |
| | | <i class="el-icon-remove-outline" title="清除"></i> |
| | | </div> |
| | | <div class="common-select-btn" v-else @click="selClientClick(scope, item.prop)"> |
| | | <i class="el-icon-circle-plus-outline" title="选择"></i> |
| | | </div> |
| | | </div> |
| | | <div class="common-select-btn" @click="clearupClient(scope.row, scope)"> |
| | | <i class="el-icon-remove-outline" title="清除"></i> |
| | | </div> |
| | | <div class="common-select-btn" v-if="scope.$index != 0" @click="deleteClient(scope.row, scope)"> |
| | | <i class="el-icon-delete" title="删除"></i> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-else-if="item.date" |
| | | label=" " |
| | | :prop="'tableData.' + scope.$index + '.' + item.prop" |
| | | :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]" |
| | | > |
| | | <!-- <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini"></el-input> --> |
| | | <el-date-picker |
| | | :disabled="!isOperate" |
| | | v-model="scope.row[item.prop]" |
| | | type="date" |
| | | size="mini" |
| | | style="width: 110px" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-else-if="item.inputNumber" |
| | | label=" " |
| | | :prop="'tableData.' + scope.$index + '.' + item.prop" |
| | | :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]" |
| | | > |
| | | <el-input-number |
| | | v-model="scope.row[item.prop]" |
| | | placeholder="" |
| | | :min="0" |
| | | :controls="false" |
| | | :disabled="!isOperate" |
| | | size="mini" |
| | | style="width: 100%; margin-right: 5px" |
| | | @change=" |
| | | (val) => { |
| | | commonInputChange(val, item.prop, scope.row, scope) |
| | | } |
| | | " |
| | | ></el-input-number> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-else-if="item.inputFloat" |
| | | label=" " |
| | | :prop="'tableData.' + scope.$index + '.' + item.prop" |
| | | :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]" |
| | | > |
| | | <el-input-number |
| | | v-model="scope.row[item.prop]" |
| | | placeholder="" |
| | | :min="0" |
| | | :precision="2" |
| | | :disabled="!isOperate" |
| | | :controls="false" |
| | | size="mini" |
| | | style="width: 100%; margin-right: 5px" |
| | | @change=" |
| | | (val) => { |
| | | commonInputChange(val, item.prop, scope.row, scope) |
| | | } |
| | | " |
| | | ></el-input-number> |
| | | </el-form-item> |
| | | <span v-else> |
| | | <template> |
| | | {{ scope.row[item.prop] }} |
| | | </template> |
| | | </span> |
| | | </template> |
| | | <el-form-item |
| | | v-else-if="item.date" |
| | | label=" " |
| | | :prop="'tableData.' + scope.$index + '.' + item.prop" |
| | | :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]" |
| | | > |
| | | <!-- <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini"></el-input> --> |
| | | <el-date-picker v-model="scope.row[item.prop]" type="date" size="mini" style="width: 110px"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | v-else-if="item.input" |
| | | label=" " |
| | | :prop="'tableData.' + scope.$index + '.' + item.prop" |
| | | :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]" |
| | | > |
| | | <el-input |
| | | v-model.trim="scope.row[item.prop]" |
| | | maxlength="50" |
| | | size="mini" |
| | | :disabled="!isOperate" |
| | | @change=" |
| | | (val) => { |
| | | commonInputChange(val, item.prop, scope.row, scope) |
| | | } |
| | | " |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-else-if="item.inputFloat" |
| | | label=" " |
| | | :prop="'tableData.' + scope.$index + '.' + item.prop" |
| | | :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]" |
| | | > |
| | | <el-input-number |
| | | v-model="scope.row[item.prop]" |
| | | placeholder="" |
| | | :min="0" |
| | | :precision="2" |
| | | :disabled="!isOperate" |
| | | :controls="false" |
| | | size="mini" |
| | | style="width: 100%; margin-right: 5px" |
| | | @change=" |
| | | (val) => { |
| | | commonInputChange(val, item.prop, scope.row, scope) |
| | | } |
| | | " |
| | | ></el-input-number> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-else-if="item.inputNumber" |
| | | label=" " |
| | |
| | | placeholder="" |
| | | :min="0" |
| | | :controls="false" |
| | | :disabled="!isOperate" |
| | | size="mini" |
| | | style="width: 100%; margin-right: 5px" |
| | | @change=" |
| | | (val) => { |
| | | commonInputChange(val, item.prop, scope.row) |
| | | commonInputChange(val, item.prop, scope.row, scope) |
| | | } |
| | | " |
| | | ></el-input-number> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-else-if="item.inputFloat" |
| | | label=" " |
| | | :prop="'tableData.' + scope.$index + '.' + item.prop" |
| | | :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]" |
| | | > |
| | | <template v-if="item.multiply"> |
| | | <el-input-number |
| | | :value="scope.row[showSummary.multiply[0]] * scope.row[showSummary.multiply[1]]" |
| | | placeholder="" |
| | | :disabled="item.disabled" |
| | | :min="0" |
| | | :precision="2" |
| | | :controls="false" |
| | | size="mini" |
| | | style="width: 100%; margin-right: 5px" |
| | | @input=" |
| | | (val) => { |
| | | commonInputChange(val, item.prop, scope.row) |
| | | } |
| | | " |
| | | ></el-input-number> |
| | | </template> |
| | | <template v-else> |
| | | <el-input-number |
| | | v-model="scope.row[item.prop]" |
| | | placeholder="" |
| | | :min="0" |
| | | :precision="2" |
| | | :controls="false" |
| | | size="mini" |
| | | style="width: 100%; margin-right: 5px" |
| | | @change=" |
| | | (val) => { |
| | | commonInputChange(val, item.prop, scope.row) |
| | | } |
| | | " |
| | | ></el-input-number> |
| | | </template> |
| | | </el-form-item> |
| | | <span v-else>{{ scope.row[item.prop] }}</span> |
| | | <!-- </template> --> |
| | | <!-- <span v-else>{{ scope.row[item.prop] }}</span> --> |
| | | <span v-else style="text-align: right">{{ scope.row[item.prop] }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" width="70" v-if="!detailEnter" align="center" fixed='right'> |
| | | <template slot-scope="scope"> |
| | | |
| | | <el-button type="text" size="small" :disabled="!isOperate" @click="deleteClick(scope)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <slot name="tableButton" /> |
| | | </el-table> |
| | | <div class="styleBtn" v-if="colOpenShow"> |
| | | <i @click="checkCol()" class="label">...</i> |
| | | <el-checkbox-group v-model="showcol" v-show="iscolopen" class="checkbox-group" @change="selectCheckBoxList"> |
| | | <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item">{{ item }} </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </el-form> |
| | | <div v-if="!detailEnter" style="margin: 10px"> |
| | | <el-button size="small" type="primary" @click="add">新增</el-button> |
| | | <el-button size="small" type="primary" @click="empty">清空</el-button> |
| | | <el-button style="margin: 10px" size="small" type="primary" @click="add">新增</el-button> |
| | | <div v-if="!detailEnter" style="margin: 10px" > |
| | | <el-button size="small" type="primary" :disabled="!isOperate" @click="add">新增</el-button> |
| | | <!-- <el-button size="small" type="primary" disabled>导入明细</el-button> --> |
| | | <el-button size="small" type="primary" :disabled="!isOperate" @click="empty">清空</el-button> |
| | | <el-button size="small" type="primary" @click="recalculate" :disabled="isRecalculate && !isOperate ? false : true" |
| | | >重算</el-button |
| | | > |
| | | </div> |
| | | <!-- 产品名称 --> |
| | | <SelectCommonDialog |
| | | <div v-if="false && (showSummary.total || showSummary.refundable)" style="height: 42px; line-height: 42px"> |
| | | <el-row :gutter="10"> |
| | | <el-col v-if="showSummary.total" :span="3" :offset="21"> |
| | | <span style="font-weight: bold">合计</span> |
| | | <span style="margin-left: 10px">{{ total }}</span> |
| | | </el-col> |
| | | <el-col v-if="showSummary.refundable" :span="3" :offset="21"> |
| | | <span style="font-weight: bold">应退款</span> |
| | | <span style="margin-left: 10px">0.00</span> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <!-- 合同订单 --> |
| | | <!-- <SelectCommonDialog |
| | | v-if="editSelCommonConfig.editVisible" |
| | | :edit-common-config="editSelCommonConfig" |
| | | :sign="sign" |
| | | :selectBoxList="tableList.tableData" |
| | | @selClient="selClient" |
| | | /> |
| | | @getSelectArray="getSelectArray" |
| | | /> --> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getProductListFromGrpc, getProductList } from "@/api/productManage/product" |
| | | import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" |
| | | // import { getProductList } from "@/api/common/other" |
| | | // import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" |
| | | export default { |
| | | name: "CommmonFormTableView", |
| | | components: { SelectCommonDialog }, |
| | | // components: { SelectCommonDialog }, |
| | | props: { |
| | | detailEnter: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | sign: { |
| | | // 是否可以配置列表 表头 |
| | | colOpenShow: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | selectBox: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | // 那个页面 用来判断计算方式 |
| | | pageName: { |
| | | type: String, |
| | | default: "" |
| | | }, |
| | | // 列表新增是否多选 |
| | | addTypeIdMultiple: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | // 是否可以操作 添加等 |
| | | isOperate: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | isBorder:{ |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | productTableList: { |
| | | type: Object, |
| | | default: () => { |
| | | return { |
| | | tableData: [], // 接口返回数据 |
| | | isReturn: false, |
| | | allcol: [], |
| | | showcol: [], |
| | | tableColumn: [ |
| | | // table表单 |
| | | { label: "", prop: "", min: 200, tooltip: true } |
| | |
| | | total: false, |
| | | refundable: false, |
| | | sumProp: [], |
| | | multiply: [], |
| | | titleProp: ["#", "产品名称"], |
| | | mergeNumber: 1 |
| | | } |
| | | } |
| | | }, |
| | | recalculateShow: { |
| | | type: [Boolean], |
| | | defalut: true |
| | | } |
| | | }, |
| | | data() { |
| | |
| | | tableList: [], |
| | | editSelCommonConfig: { |
| | | editVisible: false, |
| | | isSelectBox: false, |
| | | title: "", |
| | | infomation: {} |
| | | }, |
| | | productIndex: 0 |
| | | productIndex: 0, |
| | | isRecalculate: true, |
| | | iscolopen: false, |
| | | showcol: [], |
| | | mergeNumber:1 |
| | | } |
| | | }, |
| | | created() { |
| | | this.getProductList() |
| | | this.tableList = this.productTableList |
| | | if (!this.selectBox) { |
| | | this.getProductList() |
| | | } |
| | | this.getTableInfo() |
| | | }, |
| | | watch:{ |
| | | "productTableList": { |
| | | handler() { |
| | | this.showcol = this.productTableList.showcol |
| | | this.getTableInfo() |
| | | }, |
| | | immediate: true |
| | | }, |
| | | "productTableList.showcol": { |
| | | handler(newVal) { |
| | | this.showcol = newVal |
| | | this.getMergeNumber() |
| | | }, |
| | | immediate: true |
| | | }, |
| | | }, |
| | | computed: {}, |
| | | watch: { |
| | | productTableList() { |
| | | this.tableList = this.productTableList |
| | | } |
| | | }, |
| | | methods: { |
| | | getMergeNumber(){ |
| | | let pattern=new RegExp("[0-9]+"); |
| | | if(pattern.test(this.showSummary.mergeNumber)){ |
| | | this.mergeNumber=this.showSummary.mergeNumber |
| | | }else{ |
| | | for(let i in this.showcol){ |
| | | if(this.showcol[i]==this.showSummary.mergeNumber){ |
| | | this.mergeNumber=Number(i)+1; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | checkCol() { |
| | | this.iscolopen = !this.iscolopen |
| | | }, |
| | | selectCheckBoxList(val) { |
| | | this.getMergeNumber() |
| | | this.$emit("selTableCol", val) |
| | | }, |
| | | getTableInfo(){ |
| | | this.tableList = this.productTableList |
| | | if (this.tableList.tableData.length === 1 && this.tableList.tableData[0].name === "") { |
| | | this.isRecalculate = false |
| | | } else { |
| | | this.isRecalculate = true |
| | | } |
| | | }, |
| | | // 产品名称 |
| | | async getProductList() { |
| | | let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc |
| | | await fn({ |
| | | page: 1, |
| | | pageSize: 100 |
| | | }).then((res) => { |
| | | if (res.data.code === 200) { |
| | | if (res.data.data.list && res.data.data.list.length > 0) { |
| | | this.productList = res.data.data.list |
| | | } |
| | | } |
| | | }) |
| | | // await getProductList({ |
| | | // productName: "", |
| | | // productNumber: "", |
| | | // page: 1, |
| | | // pageSize: 100 |
| | | // }).then((res) => { |
| | | // console.log(res, "产品名称") |
| | | // if (res.code === 200) { |
| | | // if (res.data.data && res.data.data.length > 0) { |
| | | // this.productList = res.data.data |
| | | // } |
| | | // } |
| | | // }) |
| | | }, |
| | | handleReserve(row) { |
| | | return row._id ? row._id : row.id |
| | | }, |
| | | // 多选 |
| | | handleSelectionChange(val) { |
| | | this.$emit("getSelectArray", val) |
| | | }, |
| | |
| | | if (this.$refs.table) { |
| | | var current = this.$refs.table.querySelector(".el-table__footer-wrapper").querySelector(".el-table__footer") |
| | | var cell = current.rows[0].cells |
| | | for (let i = 0; i < this.showSummary.mergeNumber; i++) { |
| | | for (let i = 0; i < this.mergeNumber; i++) { |
| | | cell[i].style.display = "none" |
| | | } |
| | | cell[this.showSummary.mergeNumber].classList.remove("is-left") |
| | | cell[this.showSummary.mergeNumber].colSpan = this.showSummary.mergeNumber.toString() |
| | | cell[this.mergeNumber].classList.remove("is-left") |
| | | cell[this.mergeNumber].colSpan = this.mergeNumber.toString() |
| | | } |
| | | }) |
| | | } |
| | |
| | | const sums = [] |
| | | columns.forEach((column, index) => { |
| | | // // 更改行名称 |
| | | if (index === this.showSummary.mergeNumber) { |
| | | sums[index] = "小计:" |
| | | if (index === this.mergeNumber) { |
| | | sums[index] = this.showSummary.totalLabel?this.showSummary.totalLabel:"小计:" |
| | | return |
| | | } |
| | | const title = this.showSummary.titleProp |
| | | const title = ["#", "产品名称", "产品编号", "单位", "销售单价", "成本单价"] |
| | | // 去除某些不需要计算的数据 |
| | | if (title.includes(column.label)) { |
| | | sums[index] = "" |
| | | return |
| | | } |
| | | if (this.pageName == "quotation" && column.label == "毛利") { |
| | | sums[index] = "" |
| | | return |
| | | } |
| | |
| | | } |
| | | if (column.property === "total") { |
| | | this.total = sums[index] |
| | | this.$emit("getSummaries", this.total) |
| | | } |
| | | }) |
| | | return sums |
| | | }, |
| | | |
| | | // 数字换行为金额显示格式 |
| | | number_format(number, decimals, dec_point, thousands_sep) { |
| | | decimals = 2 //这里默认设置保留两位小数,也可以注释这句采用传入的参数 |
| | |
| | | }, |
| | | // 新增 |
| | | add() { |
| | | this.$emit("addProductClick") |
| | | if (this.addTypeIdMultiple) { |
| | | this.productIndex = this.tableList.tableData.length |
| | | this.editSelCommonConfig.title = "产品名称" |
| | | this.editSelCommonConfig.isSelectBox = true |
| | | this.editSelCommonConfig.editVisible = true |
| | | } else { |
| | | this.$emit("addProductClick") |
| | | } |
| | | }, |
| | | commonInputChange(val, prop, row) { |
| | | console.log(val, prop) |
| | | console.log(row) |
| | | this.$emit("inputContent", val, prop, row) |
| | | commonInputChange(val, prop, row, scope) { |
| | | if (prop === "amount") { |
| | | this.tableList.tableData.map((ite) => { |
| | | if (ite.name === row.name) { |
| | | ite.total = row.amount * row.price |
| | | } |
| | | }) |
| | | } |
| | | if (this.pageName == "quotation" && prop == "cost" && scope.row.cost) { |
| | | let value = scope.row.cost |
| | | let reg2 = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/ |
| | | if (!reg2.test(value) || value == 0) { |
| | | this.$message.error("成本单价需要填写大于0的2位小数!") |
| | | return true |
| | | } |
| | | this.$forceUpdate() |
| | | } |
| | | if (this.pageName == "quotation") { |
| | | if (prop == "price" || prop == "cost") { |
| | | if (scope.row.price && scope.row.cost) { |
| | | let profit = Number(scope.row.price) - Number(scope.row.cost) |
| | | scope.row.profit = profit + "" |
| | | let margin = (((Number(scope.row.price) - Number(scope.row.cost)) * 100) / Number(scope.row.cost)).toFixed( |
| | | 2 |
| | | ) |
| | | scope.row.margin = margin + "" |
| | | } |
| | | } |
| | | } |
| | | this.$emit("inputContent", val, prop, row, scope) |
| | | }, |
| | | // 清空 |
| | | empty() { |
| | | this.isRecalculate = false |
| | | this.$emit("emptyProductClick") |
| | | }, |
| | | // 删除 |
| | | deleteClick(scope) { |
| | | this.tableList.tableData.splice(scope.$index, 1) |
| | | this.$forceUpdate() |
| | | this.$message.success("删除成功!") |
| | | this.$emit("deleteClick", scope) |
| | | }, |
| | | // 重算 |
| | | recalculate() { |
| | | this.$confirm("确定要重算明细所有行?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | this.$emit("recalculateProductClick") |
| | | this.tableList.tableData.map((ite) => { |
| | | ite.total = ite.amount ? ite.amount * ite.price : 1 * ite.price |
| | | }) |
| | | }) |
| | | .catch(() => {}) |
| | | }, |
| | | // 选择产品名称相关方法 |
| | | querySearchAsync(queryString, cb) { |
| | |
| | | }, |
| | | handleSelectClient(item, prop, row) { |
| | | // this.clientId = item.id |
| | | this.isRecalculate = true |
| | | console.log(item, prop, row) |
| | | this.tableList.tableData.map((ite) => { |
| | | if (ite.name === item.name) { |
| | | ite.ID = row.ID |
| | | ite.amount = item.amount || 1 |
| | | ite.number = item.number |
| | | ite.purchasePrice = item.purchasePrice |
| | | ite.price = item.price |
| | | ite.total = item.amount ? item.amount * item.price : 1 * item.price |
| | | ite.unit = item.unit |
| | | ite.deliveryTime = item.deliveryTime |
| | | ite.shippingDuration = item.shippingDuration |
| | | ite.modelNumber = item.modelNumber |
| | | } |
| | | }) |
| | | if (this.detailEnter) { |
| | | this.setEditName(item, row.ID) |
| | | } |
| | | }, |
| | | setEditName(item, ID) { |
| | | let selRow = { |
| | | ID: ID, |
| | | deliveryTime: item.deliveryTime, |
| | | maximumStock: item.maximumStock, |
| | | minimumStock: item.minimumStock, |
| | | modelNumber: item.modelNumber, |
| | | name: item.name, |
| | | number: item.number, |
| | | productType: item.productType, |
| | | purchasePrice: item.purchasePrice, |
| | | remark: item.remark, |
| | | shippingDuration: item.shippingDuration, |
| | | specifications: item.specifications, |
| | | supplierId: item.supplierId, |
| | | unit: item.unit |
| | | } |
| | | this.$emit("selCommonName", selRow) |
| | | }, |
| | | selClientClick(row, prop, scope) { |
| | | console.log(row, prop) |
| | | // 新增 |
| | | selClientClick(scope, prop) { |
| | | console.log(scope, prop) |
| | | this.productIndex = scope.$index |
| | | this.editSelCommonConfig.title = "产品名称" |
| | | this.editSelCommonConfig.isSelectBox = true |
| | | this.editSelCommonConfig.editVisible = true |
| | | }, |
| | | // 编辑 |
| | | handleEditClient(scope, prop) { |
| | | console.log(scope, prop) |
| | | this.productIndex = scope.$index |
| | | this.editSelCommonConfig.title = "产品名称" |
| | | this.editSelCommonConfig.isSelectBox = false |
| | | this.editSelCommonConfig.editVisible = true |
| | | }, |
| | | selClient(item) { |
| | | console.log(item) |
| | | console.log(this.tableList.tableData) |
| | | if (this.detailEnter) { |
| | | this.tableList.tableData.map((ite) => { |
| | | ite.ID |
| | | ite.name = item.name |
| | | ite.amount = item.amount || 1 |
| | | ite.number = item.number |
| | | ite.purchasePrice = item.purchasePrice |
| | | ite.unit = item.unit |
| | | ite.deliveryTime = item.deliveryTime |
| | | ite.shippingDuration = item.shippingDuration |
| | | }) |
| | | this.setEditName(item, this.tableList.tableData[0].ID) |
| | | } else { |
| | | let list = this.tableList.tableData.map((item) => item.number) |
| | | if (list.findIndex((v) => v == item.number) == -1) { |
| | | this.isRecalculate = true |
| | | // this.editConfig.infomation.client_name = row.name |
| | | this.tableList.tableData.map((ite, index) => { |
| | | if (index === this.productIndex) { |
| | | ite.name = item.name |
| | | ite.productId = item.ID |
| | | ite.amount = item.amount || 1 |
| | | ite.number = item.number |
| | | ite.purchasePrice = item.purchasePrice |
| | | ite.price = item.price |
| | | ite.total = item.amount ? item.amount * item.price : 1 * item.price |
| | | ite.unit = item.unit |
| | | ite.deliveryTime = item.deliveryTime |
| | | ite.shippingDuration = item.shippingDuration |
| | | this.$set(this.tableList.tableData, index, ite) |
| | | this.$forceUpdate() |
| | | } |
| | | }) |
| | | |
| | | console.log(this.tableList.tableData, "=====chanp") |
| | | } else { |
| | | this.$message.error("不能选择重复的产品, 请重新选择") |
| | | } |
| | | }, |
| | | getSelectArray(val) { |
| | | this.$emit("getSelectArray", val, this.productIndex) |
| | | }, |
| | | // 清除已选择用户 |
| | | clearupClient(row, scope) { |
| | | clearupClient(scope) { |
| | | this.productIndex = scope.$index |
| | | this.tableList.tableData.map((ite, index) => { |
| | | console.log(scope.$index) |
| | | if (scope.$index && scope.$index >= 0) { |
| | | if (index === this.productIndex) { |
| | | ite.name = "" |
| | | ite.amount = 1 |
| | | ite.number = "" |
| | | ite.purchasePrice = 0 |
| | | ite.unit = "" |
| | | ite.deliveryTime = 0 |
| | | ite.shippingDuration = 0 |
| | | } |
| | | } else { |
| | | if (index === this.productIndex) { |
| | | ite.name = "" |
| | | ite.amount = 1 |
| | | ite.number = "" |
| | | ite.purchasePrice = 0 |
| | | ite.price = 0 |
| | | ite.total = 0 |
| | | ite.unit = "" |
| | | ite.deliveryTime = 0 |
| | | ite.shippingDuration = 0 |
| | | } |
| | | }) |
| | | this.$emit("clearupProduct", this.tableList.tableData) |
| | | }, |
| | | deleteClient(row, scope) { |
| | | if (this.tableList.tableData.length == 1) { |
| | | this.$message.error("至少保留一条,不能刪除了!") |
| | | return true |
| | | } |
| | | this.tableList.tableData.splice(scope.$index, 1) |
| | | } |
| | | // 多选设置已选中 |
| | | // toggleSelection(rows) { |
| | | // console.log("88888888888888888888888888888888888888888") |
| | | // console.log(rows) |
| | | // if (rows) { |
| | | // rows.forEach((row) => { |
| | | // this.$refs.fromTable.toggleRowSelection(row, true) |
| | | // console.log(row) |
| | | // }) |
| | | // } |
| | | // } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <!-- Add "scoped" attribute to limit CSS to this component only --> |
| | | <style lang="scss" scoped> |
| | | .page-view { |
| | | min-width: 100px; |
| | | position: relative; |
| | | .el-form{ |
| | | height:calc(100% - 120px); |
| | | } |
| | | .el-form-item { |
| | | margin-bottom: 0; |
| | | .custom-name { |
| | |
| | | .el-table th.el-table__cell > .cell { |
| | | padding: 0 5px; |
| | | } |
| | | .el-table__fixed-footer-wrapper tbody td.el-table__cell{ |
| | | background:#fff; |
| | | } |
| | | .el-input__inner { |
| | | text-align: left; |
| | | // text-align: left; |
| | | text-align: center !important; |
| | | } |
| | | .styleBtn { |
| | | position: absolute; |
| | | width: 30px; |
| | | height: 48px; |
| | | // line-height: 26px; |
| | | // background: #06c062; |
| | | top: 0; |
| | | right: -6px; |
| | | z-index: 11; |
| | | .label { |
| | | position: absolute; |
| | | top: 11px; |
| | | font-size: 20px; |
| | | // line-height: 5px; |
| | | cursor: pointer; |
| | | color: #000; |
| | | transform: rotate(-90deg); |
| | | } |
| | | .checkbox-group { |
| | | width: 160px; |
| | | height: 180px; |
| | | overflow: auto; |
| | | display: flex; |
| | | flex-direction: column; |
| | | line-height: 25px; |
| | | background: #ffffff; |
| | | border-radius: 16px; |
| | | padding: 12px; |
| | | position: absolute; |
| | | right: 0; |
| | | top: 30px; |
| | | z-index: 99; |
| | | box-shadow: 0 0 2px 2px #f8f8f8; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | :row-class-name="tableRowClassName" |
| | | > |
| | | <el-table-column v-if="selectBox" type="selection" width="40" :selectable="selectable"> </el-table-column> |
| | | <el-table-column v-if="tableList.selectIndex" type="index" label="序号" width="50"></el-table-column> |
| | | <el-table-column |
| | | v-if="tableList.selectIndex" |
| | | type="index" |
| | | label="序号" |
| | | width="50" |
| | | :fixed="tableList.isFixed" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | v-for="(item, i) in tableList.tableColumn" |
| | | :key="i" |
| | |
| | | :min-width="item.min" |
| | | show-overflow-tooltip |
| | | :sortable="item.sortable" |
| | | :fixed="item.fixed" |
| | | v-if="item.isShowColumn" |
| | | > |
| | | |
| | |
| | | default: () => { |
| | | return { |
| | | selectIndex: true, |
| | | isFixed: false, |
| | | tableInfomation: [], // 接口返回数据 |
| | | showcol: [], |
| | | allcol: [], |
| | |
| | | name: "silkRegisterAddPage", |
| | | component: silkRegisterAddPage, |
| | | meta: { |
| | | title: "新增纤度登记表/纤度检验表" |
| | | title: "纤度登记表/纤度检验表" |
| | | } |
| | | }, |
| | | { |
| | |
| | | @searchClick="onFilterSearch" |
| | | > |
| | | <template slot="leftButton"> |
| | | <el-button size="small" type="primary" @click="addBtnClick">新建</el-button> |
| | | <!-- <el-button size="small" type="primary" @click="addBtnClick">新建</el-button> --> |
| | | <el-button size="small" type="primary" @click="printClick">打印</el-button> |
| | | </template> |
| | | </CommonSearch> |
| | |
| | | <template slot="tableButton"> |
| | | <el-table-column label="操作" width="90" fixed="right"> |
| | | <template slot-scope="scope"> |
| | | <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button> |
| | | <el-button @click="delClick(scope.row.id)" type="text" size="small">删除</el-button> |
| | | <el-button @click="handleClick(scope.row)" type="text" size="small">修改</el-button> |
| | | <el-button @click="delClick(scope.row.ID)" type="text" size="small">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getFollowRecordList, getDeleteFollowRecord } from "@/api/productManage/silkInspectForm.js" |
| | | import { getInspectCheckList, getInspectCheckDelete } from "@/api/productManage/silkInspectForm.js" |
| | | import pageMixin from "@/components/makepager/pager/mixin/pageMixin" |
| | | |
| | | export default { |
| | |
| | | tableList: {}, |
| | | loading: false, |
| | | searchOptions: [], |
| | | editConfig: { |
| | | visible: false, |
| | | title: "新建", |
| | | infomation: {} |
| | | }, |
| | | search_map: {}, |
| | | keyword: '', |
| | | tableColumn: [ |
| | | { label: "编号", prop: "topic", min: 120, default: true }, // 主题 |
| | | { label: "车间", prop: "client_name", min: 190, }, // 客户名称 |
| | | { label: "车组", prop: "contact_name", min: 100, }, // 联系人姓名 |
| | | { label: "日期", prop: "client_status", min: 100 }, // 客户状态 |
| | | { label: "平均纤度", prop: "contact_information_name", min: 100 }, // 联系方式 |
| | | { label: "公量纤度", prop: "follow_time", min: 130 }, // 联系人日期 |
| | | { label: "偏差", prop: "next_follow_time", min: 130 }, // 下次回访日期 |
| | | { label: "总差", prop: "member_name", min: 110 }, // 负责人 |
| | | { label: "车组等级", prop: "member_name", min: 110 }, // 负责人 |
| | | { label: "清洁", prop: "member_name", min: 110 }, // 负责人 |
| | | { label: "洁净", prop: "member_name", min: 110 }, // 负责人 |
| | | { label: "规格", prop: "member_name", min: 110 }, // 负责人 |
| | | { label: "编号", prop: "number", min: 120, default: true }, |
| | | { label: "车间", prop: "name", min: 190, }, |
| | | { label: "车组", prop: "workshopGroup", min: 100, }, |
| | | { label: "日期", prop: "finishDate", min: 100 }, |
| | | { label: "平均纤度", prop: "averageFineness", min: 100 }, |
| | | { label: "公量纤度", prop: "measureFineness", min: 130 }, |
| | | { label: "偏差", prop: "deviation", min: 130 }, |
| | | { label: "总差", prop: "totalDeviation", min: 110 }, |
| | | { label: "车组等级", prop: "finenessGrade", min: 110 }, |
| | | { label: "清洁", prop: "cleanliness", min: 110 }, |
| | | { label: "洁净", prop: "purity", min: 110 }, |
| | | { label: "规格", prop: "spec", min: 110 }, |
| | | ], |
| | | showCol: [ |
| | | "编号", |
| | |
| | | }, |
| | | created() { |
| | | this.setTable() |
| | | this.getData(this.search_map) |
| | | this.getData(this.keyword) |
| | | }, |
| | | computed: { |
| | | }, |
| | |
| | | // 请求数据 |
| | | async getData() { |
| | | this.loading = true |
| | | await getFollowRecordList({ |
| | | search_map: this.search_map, |
| | | await getInspectCheckList({ |
| | | keyword: this.keyword, |
| | | 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) => { |
| | | if (res.data&& res.data.length > 0) { |
| | | const list = res.data.map((item) => { |
| | | return { |
| | | ...item, |
| | | client_name: item.client.name, |
| | | contact_name: item.contact.name, |
| | | client_status: item.client_status.name, |
| | | phone: item.contact.phone, |
| | | member_name: item.member.username, |
| | | contact_information_name: item.contact_information.name |
| | | number: item.finenessRegister.number, |
| | | name: item.finenessRegister.name, |
| | | workshopGroup: item.finenessRegister.workshopGroup, |
| | | finishDate: item.finenessRegister.finishDate, |
| | | spec:item.finenessRegister.spec, |
| | | } |
| | | }) |
| | | this.tableList.tableInfomation = list || [] |
| | |
| | | }, |
| | | // 搜索 |
| | | onFilterSearch(searchText) { |
| | | this.search_map.client_name = searchText ?? "" |
| | | this.keyword= searchText ?? "" |
| | | this.pagerOptions.currPage = 1 |
| | | this.getData() |
| | | }, |
| | |
| | | }, |
| | | // 编辑 |
| | | handleClick(row) { |
| | | console.log(row) |
| | | this.editConfig.title = "编辑" |
| | | let config=JSON.parse(JSON.stringify(row)); |
| | | config.client_status_id=config.client_status_id?config.client_status_id:null |
| | | config.contact_information_id=config.contact_information_id?config.contact_information_id:null |
| | | this.editConfig.infomation = { ...config, sale_chance_name:row.sale_chance.name, sales_leads_name: "" } |
| | | this.editConfig.visible = true |
| | | this.$router.push({ |
| | | path:"/productManage/silkRegisterForm/addPage", |
| | | query:{ |
| | | activeName:'second', |
| | | inspectID:row.ID, |
| | | id:row.finenessRegisterID, |
| | | number:row.number, |
| | | } |
| | | }); |
| | | }, |
| | | // 删除 |
| | | delClick(id) { |
| | | this.$confirm("是否确认删除?", "警告", { |
| | | debugger |
| | | this.$confirm("请确认是否删除,删除操作不可撤销??", "警告", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | getDeleteFollowRecord({ ids: [id] }).then((response) => { |
| | | getInspectCheckDelete({ id: id }).then((response) => { |
| | | if (response.code === 200) { |
| | | this.$message.success("删除成功") |
| | | this.getData() |
| | |
| | | <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-tab-pane label="纤度检验表" :disabled='!registerId&&!isRegisterSave' name="second"></el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | <template v-if="activeName == 'first'"> |
| | |
| | | placeholder="请输入关键词" @searchClick="onFilterSearch"> |
| | | <template slot="leftButton"> |
| | | <el-button size="small" type="primary" @click="cancelClickOne">放弃</el-button> |
| | | <el-button size="small" type="primary" @click="saveClickOne('form')">保存</el-button> |
| | | <el-button size="small" type="primary" :loading="isAddloading" |
| | | @click="saveClickOne('form')">保存</el-button> |
| | | </template> |
| | | </CommonSearch> |
| | | </div> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="规格" prop="spec" class="form-item"> |
| | | <el-input v-model="form.spec" placeholder="请输入"> |
| | | </el-input> |
| | | <!-- <el-select v-model="form.spec" placeholder="请选择" class="select-width"> |
| | | <el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" |
| | | :value="item.id"> |
| | | <el-select v-model="form.spec" placeholder="请选择" class="select-width"> |
| | | <el-option v-for="item in specList" :key="item.ID" :label="item.name" |
| | | :value="item.name"> |
| | | </el-option> |
| | | </el-select> --> |
| | | </el-select> |
| | | <!-- <el-input v-model="form.spec" placeholder="请输入"> |
| | | </el-input> --> |
| | | </el-form-item> |
| | | <el-form-item label="组别" prop="workshopGroup" class="form-item"> |
| | | <el-select v-model="form.workshopGroup" placeholder="请选择" class="select-width"> |
| | |
| | | :value="item.ID"> |
| | | </el-option> |
| | | </el-select> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="回数" prop='circle' class="form-item"> |
| | | <el-row> |
| | | <el-col :span="11"> |
| | | <el-form-item label="" @input="inputStart" label-width="0" prop="startCircle" class="select-width"> |
| | | <el-input v-model.number="form.startCircle" placeholder="请输入" show-word-limit |
| | | class="select-width"></el-input> |
| | | <el-form-item label="" @input="inputStart" label-width="0" prop="startCircle" |
| | | class="select-width"> |
| | | <el-input v-model.number="form.startCircle" placeholder="请输入" show-word-limit |
| | | class="select-width"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="2" style="margin:0 auto;text-align:center;">-</el-col> |
| | | <el-col :span="11"> |
| | | <el-form-item label="" label-width="0" prop="endCircle" class="select-width"> |
| | | |
| | | <el-input v-model.number="form.endCircle" @input="inputStart" placeholder="请输入" show-word-limit |
| | | class="select-width"></el-input> |
| | | <el-input v-model.number="form.endCircle" @input="inputStart" placeholder="请输入" |
| | | show-word-limit class="select-width"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="list-view"> |
| | | <TableCommonView ref="tableListRef" :colOpenShow="false" v-loading="loading" :table-list="tableList" |
| | | <!-- <TableCommonView ref="tableListRef" :colOpenShow="false" v-loading="loading" :table-list="tableList" |
| | | @selTableCol="selTableCol"> |
| | | </TableCommonView> |
| | | </TableCommonView> --> |
| | | <!-- 修改为输入 --> |
| | | <CommonFormTableView ref="commonFormTableView" :detail-enter="isView ? true : false" |
| | | :selectBox="false" :detailEnter="true" :show-summary="showSummary" |
| | | :product-table-list="tableList" @inputContent="inputContent" |
| | | @addProductClick="addProductClick"></CommonFormTableView> |
| | | </div> |
| | | </div> |
| | | <div class="body-r"> |
| | |
| | | </div> |
| | | </template> |
| | | <template v-if="activeName == 'second'"> |
| | | <!-- <div class="body-two body" v-if="activeName == 'second'"> |
| | | <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="cancelClickTwo">放弃</el-button> |
| | | <el-button size="small" type="primary" :loading="isAddloading" |
| | | @click="saveClickOne('form')">保存</el-button> |
| | | <!-- </template> |
| | | </CommonSearch> --> |
| | | </div> |
| | | </div> |
| | | <div class="body-two body"> |
| | | <div class="body-two-t">纤度检验表</div> |
| | | <el-form ref="form" class="form-box" :model="form" :rules="rules" label-position="right" label-width="60px"> |
| | | <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 label="编号" prop="number" class="form-item"> |
| | | {{ form.number }} |
| | | </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 label="车间" prop="name" class="form-item"> |
| | | {{ form.name }} |
| | | </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 label="组别" prop="workshopGroup" class="form-item"> |
| | | {{ form.workshopGroup }} |
| | | </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 label="回数" prop="circle" class="form-item"> |
| | | {{ form.circle }} |
| | | </el-form-item> |
| | | <el-form-item label="规格" prop="clientName" class="form-item"> |
| | | <el-input v-model="form.clientName" placeholder="请输入"> |
| | | </el-input> |
| | | <el-form-item label="规格" prop="spec" class="form-item"> |
| | | {{ form.spec }} |
| | | </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 label="日期" prop="finishDate" class="form-item"> |
| | | {{ form.finishDate }} |
| | | </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 label="车号" prop="ID" width="100"> |
| | | </el-table-column> |
| | | <el-table-column label="下差纤度" prop="name" width="100" align="center"> |
| | | <el-table-column label="下差纤度" prop="name1" 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 |
| | |
| | | </el-table-column> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="目的纤度" prop="name" width="100" align="center"> |
| | | <el-table-column label="目的纤度" prop="name2" 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 |
| | |
| | | </el-table-column> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="上差纤度" prop="name" width="100" align="center"> |
| | | <el-table-column label="上差纤度" prop="name3" 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 |
| | |
| | | </el-table-column> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="valueRange" label="偏差" width="120"> |
| | | <el-table-column prop="deviation" label="偏差" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="总差" show-overflow-tooltip> |
| | | <el-table-column prop="totalDeviation" label="总差" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="valueRange" label="野纤" width="120"> |
| | | </el-table-column> |
| | |
| | | </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 prop="finenessGrade" label="等级" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="valueRange" label="II度" width="120"> |
| | | <el-table-column prop="twiceChange" label="II度" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="清洁" show-overflow-tooltip> |
| | | <el-table-column prop="cleanliness" label="清洁" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="valueRange" label="洁净" width="120"> |
| | | <el-table-column prop="purity" label="洁净" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="备注" show-overflow-tooltip> |
| | | <el-table-column prop="remark" 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 label="平均纤度" prop="averageFineness" class="form-item-two" label-width="100px"> |
| | | {{ form.averageFineness }} |
| | | </el-form-item> |
| | | <el-form-item label="公量纤度" prop="deliverType" class="form-item" label-width="100px"> |
| | | <el-input v-model="form.clientName" placeholder="请输入"> |
| | | <el-form-item label="公量纤度" prop="measureFineness" class="form-item" label-width="100px"> |
| | | <el-input v-model="form.measureFineness" placeholder="请输入"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="偏差" prop="clientName" class="form-item-two"> |
| | | 0.98 |
| | | <el-form-item label="偏差" prop="deviation" class="form-item-two"> |
| | | {{ form.deviation }} |
| | | </el-form-item> |
| | | <el-form-item label="总差" prop="clientName" class="form-item-two"> |
| | | 0.98 |
| | | <el-form-item label="总差" prop="totalDeviation" class="form-item-two"> |
| | | {{ form.totalDeviation }} |
| | | </el-form-item> |
| | | <el-form-item label="车组等级" prop="deliverType" class="form-item-two" label-width="100px"> |
| | | 4A |
| | | <el-form-item label="车组等级" prop="finenessGrade" class="form-item-two" label-width="100px"> |
| | | {{ form.finenessGrade }} |
| | | </el-form-item> |
| | | <el-form-item label="II度" prop="amount" class="form-item"> |
| | | <el-input v-model="form.clientName" placeholder="请输入"> |
| | | <el-form-item label="II度" prop="twiceChange" class="form-item"> |
| | | <el-input v-model="form.twiceChange" placeholder="请输入"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="清洁" prop="clientName" class="form-item"> |
| | | <el-input v-model="form.clientName" placeholder="请输入"> |
| | | <el-form-item label="清洁" prop="cleanliness" class="form-item"> |
| | | <el-input v-model="form.cleanliness" placeholder="请输入"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="洁净" prop="signTime" class="form-item"> |
| | | <el-input v-model="form.clientName" placeholder="请输入"> |
| | | <el-form-item label="洁净" prop="purity" class="form-item"> |
| | | <el-input v-model="form.purity" 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-form-item label="庄口工艺单编号" prop="marketProcessOrderNumber" class="form-item" |
| | | label-width="110px"> |
| | | <el-input v-model="form.marketProcessOrderNumber" placeholder="请输入"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="检验员" prop="signTime" class="form-item"> |
| | | <el-input v-model="form.clientName" placeholder="请输入"> |
| | | <el-form-item label="检验员" prop="inspector" class="form-item"> |
| | | <el-input v-model="form.inspector" placeholder="请输入"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | </div> --> |
| | | </div> |
| | | </template> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import { getRegisterList,saveRegister,getDictList } from "@/api/productManage/silkRegisterForm.js" |
| | | import { saveRegister, getDictList, getWorkshopManageList, getRegisterDetails } from "@/api/productManage/silkRegisterForm.js" |
| | | import { getCheckDetails, saveCheck, } from "@/api/productManage/silkInspectForm.js" |
| | | import pageMixin from "@/components/makepager/pager/mixin/pageMixin" |
| | | import CommonFormTableView from "@/components/makepager/CommonFormTableView" |
| | | export default { |
| | | name: "silkRegisterAddPage", |
| | | props: {}, |
| | | mixins: [pageMixin], |
| | | components: { |
| | | CommonFormTableView, |
| | | }, |
| | | computed: {}, |
| | | data() { |
| | | return { |
| | | tableList: {}, |
| | | loading: false, |
| | | activeName: "first", |
| | | searchOptions: [], |
| | | search_map: {}, |
| | | is_public: true, |
| | | tableColumn: [ |
| | | { label: "车号", prop: "position", min: 100, default: true }, // 客户名称 |
| | | { label: "纤度值", prop: "fineness", default: true }, // 销售负责人 |
| | | { label: "数量", prop: "quantity", default: true }, // 重要级别 |
| | | { label: "纤度合计", prop: "sum", min: 90, default: true }, // 下次回访日期 |
| | | ], |
| | | showCol: ['车号', '纤度值', '数量', '纤度合计'], |
| | | marketList:[], //庄口 |
| | | nameList:[], //车间 |
| | | workshopGroupList:[], //组别 |
| | | keyword: '', |
| | | marketList: [], //庄口 |
| | | nameList: [], //车间 |
| | | workshopGroupList: [], //组别 |
| | | deliveryTypeList: [], |
| | | specList: [], //规格 |
| | | form: { |
| | | number:'', |
| | | finishDate:'', |
| | | market:'', |
| | | name:'', |
| | | spec:'', |
| | | workshopGroup:'', |
| | | circle:'', |
| | | startCircle:'', |
| | | endCircle:'', |
| | | position:'', |
| | | }, |
| | | rules: { |
| | | number: [ |
| | |
| | | finishDate: [ |
| | | { required: true, message: "请选择", trigger: ["change", 'blur'] }, |
| | | ], |
| | | // 车间 应该true |
| | | name: [ |
| | | { required: true, message: "请选择", trigger: ["change", 'blur'] }, |
| | | ], |
| | | spec: [ |
| | | { required: true, message: "请填写", trigger: ["change", 'blur'] }, |
| | | ], |
| | | // 组别 应该true |
| | | workshopGroup: [ |
| | | { required: true, message: "请选择", trigger: ["change", 'blur'] }, |
| | | { required: false, message: "请选择", trigger: ["change", 'blur'] }, |
| | | ], |
| | | circle: [ |
| | | { required: true, message: "请填写", trigger: ["change", 'blur'] }, |
| | |
| | | }, |
| | | 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 }, |
| | | lower: [], |
| | | objective: [], |
| | | upper: [], |
| | | }, |
| | | // 新增纤度登记表 |
| | | isAddloading: false, |
| | | isView: true, |
| | | showSummary: { |
| | | show: true, |
| | | total: true, |
| | | totalLabel: '合计:', |
| | | sumProp: ["fineness", "quantity", 'sum'], |
| | | mergeNumber: 0 |
| | | }, |
| | | productId: 1, |
| | | tableList: { |
| | | allcol: [], |
| | | headerColor: 'red', |
| | | showcol: ['车号', '纤度值', '数量', '纤度合计'], |
| | | tableData: [ |
| | | { |
| | | productId: 1, |
| | | position: null, |
| | | fineness: null, |
| | | quantity: null, |
| | | sum: null, |
| | | } |
| | | ], |
| | | 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 }, |
| | | tableColumn: [ |
| | | { label: "车号", prop: "position", inputNumber: true, isRequird: true, }, // 客户名称 |
| | | { label: "纤度值", prop: "fineness", inputNumber: true, isRequird: true, }, // 销售负责人 |
| | | { label: "数量", prop: "quantity", inputNumber: true, isRequird: true, }, // 重要级别 |
| | | { label: "纤度合计", prop: "sum", inputNumber: true, isRequird: true, }, // 下次回访日期 |
| | | ], |
| | | }, |
| | | tableData: [], |
| | | registerId: '', |
| | | inspectID: '', |
| | | isRegisterSave:false, |
| | | } |
| | | }, |
| | | created() { |
| | | let query = this.$route.query; |
| | | if (query) { |
| | | this.activeName = query.activeName ? query.activeName : "first"; |
| | | this.registerId = query.id ? query.id : ""; |
| | | this.inspectID = query.inspectID ? query.inspectID : ""; |
| | | } |
| | | this.setTable() |
| | | this.getSelectDataList() |
| | | this.search_map = { |
| | | is_public: this.is_public |
| | | } |
| | | this.getData() |
| | | this.keyword = '' |
| | | this.getDetailsData() |
| | | }, |
| | | methods: { |
| | | getSelectDataList(){ |
| | | getDetailsData(id) { |
| | | if (this.activeName == 'first') { |
| | | this.form = { |
| | | number: '', |
| | | finishDate: '', |
| | | market: '', |
| | | name: '', |
| | | spec: '', |
| | | workshopGroup: '', |
| | | circle: '', |
| | | startCircle: '', |
| | | endCircle: '', |
| | | position: '', |
| | | } |
| | | if (this.registerId) { |
| | | getRegisterDetails({ id: id ? id : this.registerId }).then((response) => { |
| | | if (response.code === 200) { |
| | | let config = JSON.parse(JSON.stringify(response.data ? response.data : {})); |
| | | this.form = config; |
| | | this.tableList.tableData = config.finenessList ? config.finenessList : [] |
| | | } |
| | | }) |
| | | } |
| | | } else { |
| | | this.form = { |
| | | number: '', |
| | | name: '', |
| | | workshopGroup: '', |
| | | circle: '', |
| | | spec: '', |
| | | finishDate: '', |
| | | averageFineness: '', |
| | | measureFineness: '', |
| | | deviation: '', |
| | | totalDeviation: '', |
| | | finenessGrade: '', |
| | | twiceChange: '', |
| | | cleanliness: '', |
| | | purity: '', |
| | | marketProcessOrderNumber: '', |
| | | inspector: '', |
| | | } |
| | | if (this.inspectID) { |
| | | getCheckDetails({ id: id ? id : this.inspectID }).then((response) => { |
| | | if (response.code === 200) { |
| | | let config = JSON.parse(JSON.stringify(response.data.info ? response.data.info : {})); |
| | | this.form = config; |
| | | this.form.number = config.finenessRegister.number |
| | | this.form.name = config.finenessRegister.name |
| | | this.form.workshopGroup = config.finenessRegister.workshopGroup |
| | | this.form.spec = config.finenessRegister.spec |
| | | this.form.finishDate = config.finenessRegister.finishDate |
| | | this.form.circle = config.finenessRegister.circle |
| | | this.getTableHeader() |
| | | this.tableTwoList.tableInfomation = response.data.items ? response.data.items : [] |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | getTableHeader(){ |
| | | let lowNumber; |
| | | let topNumber; |
| | | if(this.form.spec){ |
| | | lowNumber=Number(this.form.spec.split('/')[0]) |
| | | topNumber=Number(this.form.spec.split('/')[1]) |
| | | } |
| | | this.tableTwoList.objective=[] |
| | | this.tableTwoList.lower=[] |
| | | this.tableTwoList.upper=[] |
| | | if(lowNumber&&topNumber){ |
| | | for(let i = 0; i <lowNumber; i++){ |
| | | let item={ |
| | | label: lowNumber+i*0.5+'', |
| | | prop: lowNumber+i*0.5+'', |
| | | min: 100, |
| | | default: true |
| | | } |
| | | this.tableTwoList.objective.push(item) |
| | | if(lowNumber+i*0.5==topNumber){ |
| | | break; |
| | | } |
| | | } |
| | | let lowStart=lowNumber-5 |
| | | for(let i = 0; i <lowStart; i++){ |
| | | let item={ |
| | | label: lowStart+i*0.5+'', |
| | | prop: lowStart+i*0.5+'', |
| | | min: 100, |
| | | default: true |
| | | } |
| | | this.tableTwoList.lower.push(item) |
| | | if(lowStart+i*0.5==(lowNumber-0.5)){ |
| | | break; |
| | | } |
| | | } |
| | | let topEnd=topNumber+5 |
| | | for(let i = 1; i <topNumber; i++){ |
| | | let item={ |
| | | label: topNumber+i*0.5+'', |
| | | prop: topNumber+i*0.5+'', |
| | | min: 100, |
| | | default: true |
| | | } |
| | | this.tableTwoList.upper.push(item) |
| | | if(topNumber+i*0.5==topEnd){ |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | this.$forceUpdate() |
| | | }, |
| | | getSelectDataList() { |
| | | //车间 |
| | | getDictList({ |
| | | dictType: 0, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.nameList=res.data||[] |
| | | } |
| | | }) |
| | | //组别 |
| | | getDictList({ |
| | | dictType: 1, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.workshopGroupList=res.data||[] |
| | | } |
| | | }) |
| | | //庄口 |
| | | getDictList({ |
| | | dictType: 2, |
| | | if (res.code == 200) { |
| | | this.nameList = res.data || [] |
| | | } |
| | | }) |
| | | //规格 |
| | | getDictList({ |
| | | dictType: 3, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.marketList=res.data||[] |
| | | } |
| | | }) |
| | | }, |
| | | inputStart(){ |
| | | this.form.circle=this.form.startCircle+'-'+this.form.endCircle |
| | | }, |
| | | 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) |
| | | if (res.code == 200) { |
| | | this.specList = res.data || [] |
| | | } |
| | | }) |
| | | //组别 |
| | | getWorkshopManageList().then((res) => { |
| | | if (res.code == 200) { |
| | | this.workshopGroupList = res.data || [] |
| | | } |
| | | }) |
| | | //庄口 |
| | | getDictList({ |
| | | dictType: 0, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.marketList = res.data || [] |
| | | } |
| | | }) |
| | | }, |
| | | selTableCol(val) { |
| | | this.showcol = val; |
| | | this.tableList.tableColumn = this.setColumnVisible(val); |
| | | inputStart() { |
| | | this.form.circle = this.form.startCircle + '-' + this.form.endCircle |
| | | }, |
| | | // 请求数据 |
| | | async getData() { |
| | | this.loading = true |
| | | await getRegisterList({ |
| | | search_map: this.search_map, |
| | | page: this.pagerOptions.currPage, |
| | | pageSize: this.pagerOptions.pageSize |
| | | // 产品新增 |
| | | addProductClick() { |
| | | this.productId++ |
| | | this.tableData.push({ |
| | | productId: this.productId, |
| | | position: '', |
| | | fineness: 0, |
| | | quantity: 0, |
| | | sum: "", |
| | | }) |
| | | .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 |
| | | }) |
| | | this.tableList.tableData = this.tableData |
| | | this.showSummary.show = true |
| | | }, |
| | | 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() |
| | | // 产品列表输入 |
| | | inputContent(val, prop, row) { |
| | | this.productId = row.productId |
| | | this.tableData.map((item) => { |
| | | if (item.productId === row.productId) { |
| | | item[prop] = val |
| | | } |
| | | }) |
| | | }, |
| | | tabsClick() { |
| | | // if (tab.name === "first") { |
| | | // this.is_public = true |
| | | // } else { |
| | | // this.is_public = false |
| | | // } |
| | | this.$router.push({ |
| | | path:"/productManage/silkRegisterForm/addPage", |
| | | query:{ |
| | | activeName:this.activeName, |
| | | inspectID:this.inspectID, |
| | | id:this.registerId, |
| | | } |
| | | }); |
| | | this.getDetailsData() |
| | | this.keyword = '' |
| | | }, |
| | | // 搜索 |
| | | onFilterSearch(searchText) { |
| | | this.search_map = { |
| | | is_public: this.is_public, |
| | | name: searchText |
| | | } |
| | | this.keyword = searchText || '' |
| | | this.pagerOptions.currPage = 1 |
| | | this.getData() |
| | | }, |
| | | // 纤度登记表 |
| | | // 放弃 |
| | | cancelClickOne() { |
| | | if (this.activeName == 'first') { |
| | | this.form = { |
| | | number: '', |
| | | finishDate: '', |
| | | market: '', |
| | | name: '', |
| | | spec: '', |
| | | workshopGroup: '', |
| | | circle: '', |
| | | startCircle: '', |
| | | endCircle: '', |
| | | position: '', |
| | | } |
| | | this.$refs.form.resetFields(); |
| | | this.productId = 1 |
| | | this.tableList.tableData = [{ |
| | | productId: 1, |
| | | position: '', |
| | | fineness: 0, |
| | | quantity: 0, |
| | | sum: "", |
| | | }] |
| | | } |
| | | }, |
| | | // 纤度检验表 |
| | | cancelClickTwo() { |
| | | |
| | | }, |
| | | // 保存 |
| | |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | let form = JSON.parse(JSON.stringify(this.form)); |
| | | delete form.circle |
| | | let params = { |
| | | finenessList: this.tableList.tableInfomation, |
| | | ...form |
| | | } |
| | | saveRegister(params).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | message: "保存成功!", |
| | | type: "success", |
| | | }); |
| | | // params.workshopGroup=Number(params.workshopGroup) |
| | | this.isAddloading = true |
| | | if (this.activeName == 'first') { |
| | | delete form.circle |
| | | let finenessList = JSON.parse(JSON.stringify(this.tableList.tableData)); |
| | | for (let i in finenessList) { |
| | | delete finenessList[i].productId |
| | | } |
| | | }); |
| | | let params = { |
| | | finenessList: finenessList, |
| | | ...form |
| | | } |
| | | // 编辑 |
| | | if (this.inspectID) { |
| | | params.ID = this.form.ID?this.form.ID:Number(this.inspectID) |
| | | } |
| | | saveRegister(params).then((res) => { |
| | | if (res.code == 200) { |
| | | this.isRegisterSave=true; |
| | | this.$message({ |
| | | message: "保存成功!", |
| | | type: "success", |
| | | }); |
| | | this.$router.push({ |
| | | path:"/productManage/silkRegisterForm", |
| | | }); |
| | | } |
| | | this.isAddloading = false |
| | | }).catch(() => { |
| | | setTimeout(() => { |
| | | this.isAddloading = false; |
| | | }, 3000); |
| | | }) |
| | | } else { |
| | | let paramsTwo = { |
| | | ...form |
| | | } |
| | | // 编辑 |
| | | if (this.registerId) { |
| | | paramsTwo.ID = this.form.ID?this.form.ID:Number(this.registerId) |
| | | } |
| | | saveCheck(paramsTwo).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | message: "保存成功!", |
| | | type: "success", |
| | | }); |
| | | } |
| | | this.isAddloading = false |
| | | }).catch(() => { |
| | | setTimeout(() => { |
| | | this.isAddloading = false; |
| | | }, 3000); |
| | | }) |
| | | } |
| | | |
| | | } else { |
| | | console.log('error submit!!'); |
| | | |
| | | return false; |
| | | } |
| | | }); |
| | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <!-- Add "scoped" attribute to limit CSS to this component only --> |
| | | |
| | | <!-- 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) { |
| | |
| | | box-sizing: border-box; |
| | | padding: 10px 10px; |
| | | border-radius: 12px; |
| | | height: calc(100% - 139px - 10px); |
| | | height: calc(100% - 139px - 10px - 20px); |
| | | width: calc(100% - 20px); |
| | | margin: 0 auto; |
| | | margin-top: 10px; |
| | |
| | | &:nth-of-type(3n) { |
| | | margin-right: 0; |
| | | } |
| | | .select-width{ |
| | | width:100%; |
| | | |
| | | .select-width { |
| | | width: 100%; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .list-view { |
| | | height: calc(100% - 0px); |
| | | min-height: 200px; |
| | | overflow: hidden; |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | |
| | | </style> |
| | |
| | | <template slot="tableButton"> |
| | | <el-table-column label="操作" width="90" fixed="right"> |
| | | <template slot-scope="scope"> |
| | | <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button> |
| | | <el-button @click="delClick(scope.row.id)" type="text" size="small">删除</el-button> |
| | | <el-button @click="handleClick(scope.row)" type="text" size="small">修改</el-button> |
| | | <el-button @click="delClick(scope.row.ID)" type="text" size="small">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getRegisterList, getDeleteRegister } from "@/api/productManage/silkRegisterForm.js" |
| | | import { getRegisterList,getDeleteRegister } from "@/api/productManage/silkRegisterForm.js" |
| | | import pageMixin from "@/components/makepager/pager/mixin/pageMixin" |
| | | |
| | | export default { |
| | |
| | | tableList: {}, |
| | | loading: false, |
| | | searchOptions: [], |
| | | editConfig: { |
| | | visible: false, |
| | | title: "新建", |
| | | infomation: {} |
| | | }, |
| | | search_map: {}, |
| | | keyword: '', |
| | | tableColumn: [ |
| | | { label: "编号", prop: "number", min: 120, default: true }, // 主题 |
| | | { label: "落丝时间", prop: "finishDate", min: 190, }, // 客户名称 |
| | |
| | | }, |
| | | created() { |
| | | this.setTable() |
| | | this.getData(this.search_map) |
| | | this.getData(this.keyword) |
| | | }, |
| | | computed: { |
| | | }, |
| | |
| | | async getData() { |
| | | this.loading = true |
| | | await getRegisterList({ |
| | | search_map: this.search_map, |
| | | keyword: this.keyword, |
| | | 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) => { |
| | | return { |
| | | ...item, |
| | | client_name: item.client.name, |
| | | contact_name: item.contact.name, |
| | | client_status: item.client_status.name, |
| | | phone: item.contact.phone, |
| | | member_name: item.member.username, |
| | | contact_information_name: item.contact_information.name |
| | | } |
| | | }) |
| | | this.tableList.tableInfomation = list || [] |
| | | this.pagerOptions.totalCount = res.data.count |
| | | if (res.data && res.data.length > 0) { |
| | | // const list = res.data.map((item) => { |
| | | // return { |
| | | // ...item, |
| | | // client_name: item.client.name, |
| | | // contact_name: item.contact.name, |
| | | // client_status: item.client_status.name, |
| | | // phone: item.contact.phone, |
| | | // member_name: item.member.username, |
| | | // contact_information_name: item.contact_information.name |
| | | // } |
| | | // }) |
| | | this.tableList.tableInfomation = res.data || [] |
| | | this.pagerOptions.totalCount = res.count |
| | | } else { |
| | | this.tableList.tableInfomation = [] |
| | | } |
| | |
| | | }, |
| | | // 搜索 |
| | | onFilterSearch(searchText) { |
| | | this.search_map.client_name = searchText ?? "" |
| | | this.keyword = searchText ?? "" |
| | | this.pagerOptions.currPage = 1 |
| | | this.getData() |
| | | }, |
| | |
| | | }, |
| | | // 编辑 |
| | | handleClick(row) { |
| | | console.log(row) |
| | | this.editConfig.title = "编辑" |
| | | let config=JSON.parse(JSON.stringify(row)); |
| | | config.client_status_id=config.client_status_id?config.client_status_id:null |
| | | config.contact_information_id=config.contact_information_id?config.contact_information_id:null |
| | | this.editConfig.infomation = { ...config, sale_chance_name:row.sale_chance.name, sales_leads_name: "" } |
| | | this.editConfig.visible = true |
| | | this.$router.push({ |
| | | path:"/productManage/silkRegisterForm/addPage", |
| | | query:{ |
| | | id:row.ID, |
| | | activeName:'first' |
| | | } |
| | | }); |
| | | }, |
| | | // 删除 |
| | | delClick(id) { |
| | | this.$confirm("是否确认删除?", "警告", { |
| | | this.$confirm("请确认是否删除,删除操作不可撤销?", "警告", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | getDeleteRegister({ ids: id }).then((response) => { |
| | | getDeleteRegister({ id: id }).then((response) => { |
| | | if (response.code === 200) { |
| | | this.$message.success("删除成功") |
| | | this.getData() |
| | |
| | | setTable() { |
| | | this.tableList = { |
| | | selectIndex: true, |
| | | fixed: true, |
| | | isFixed: true, |
| | | tableInfomation: [{ name: "张三" }, { name: "lisi" }, { name: "王五" }], |
| | | allcol: [], |
| | | showcol: this.showCol, |