<script lang="ts" setup>
|
import {onMounted, reactive, ref, watch} from "vue"
|
import {useRouter,useRoute} from "vue-router"
|
import * as XLXS from "xlsx"
|
import {ElMessage} from "element-plus"
|
import request from "@/utils/request"
|
import deepClone from "@/utils/deepClone"
|
import useUserInfoStore from '@/stores/userInfo'
|
import SelectProduct from "@/views/sd/product/SelectProduct.vue"
|
import {changeFilterEvent,filterChanged} from "@/hook"
|
import {addListener,toolbarButtonClickEvent} from "@/hook/mouseMove";
|
import {CaretBottom} from "@element-plus/icons-vue";
|
|
let dialogTableVisible = ref(false)
|
let productVisible = ref(false)
|
const userStore = useUserInfoStore()
|
const router = useRouter()
|
const route = useRoute()
|
const xGrid = ref()
|
let cellArea = ref()
|
|
// 定义表头上传数据
|
const titleUploadData = ref({
|
project:'',
|
orderType:'',
|
customerId:'',
|
customerName:'',
|
icon:'',
|
orderClassify:'',
|
packType:'',
|
orderId:'',
|
deliveryDate:'',
|
batch:'',
|
calculateType:'',
|
salesmanId:'',
|
salesman:'',
|
alType:'',
|
money:'',
|
contractId:'',
|
customerBatch:'',
|
contacts:'',
|
contactNumber:'',
|
deliveryAddress:'',
|
otherMoney:'',
|
otherMoneyRemarks:'',
|
processingNote:'',
|
createOrder:0,
|
creatorId:userStore.user.userName,
|
creator:userStore.user.userId,
|
})
|
//定义接收加载表头下拉数据
|
const titleSelectJson = ref({
|
orderType:[],
|
alType:[],
|
icon:[],
|
orderClassify:[],
|
packType:[],
|
customer:[],
|
saleMan:[]
|
})
|
let filterData = ref({})
|
let rowIndex = ref(null)
|
let rowClickIndex = ref(null)
|
|
const gridOptions = reactive({
|
border: "full",//表格加边框
|
keepSource: true,//保持源数据
|
align: 'center',//文字居中
|
stripe:true,//斑马纹
|
rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮
|
id: 'OrderList',
|
showFooter: true,//显示脚
|
printConfig: {},
|
importConfig: {},
|
exportConfig: {},
|
scrollY:{ enabled: true },//开启虚拟滚动
|
showOverflow:true,
|
menuConfig: {
|
body: {
|
options: [
|
[
|
{ code: 'addRow', name: '添加', prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: false },
|
{ code: 'deleteRow', name: '删除', prefixIcon: 'vxe-icon-delete', visible: true, disabled: true },
|
{ code: 'copyChecked', name: '选中相同', prefixIcon: 'vxe-icon-copy', visible: true, disabled: false },
|
{ code: 'copyAll', name: '之后相同', prefixIcon: 'vxe-icon-feedback', visible: true, disabled: false },
|
{ code: 'clearChecked', name: '清除选中', prefixIcon: 'vxe-icon-indicator', visible: true, disabled: false },
|
{ code: 'computedMoney', name: '计算金额', prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: true },
|
]
|
]
|
}
|
},
|
columnConfig: {
|
resizable: true,
|
useKey: true
|
},
|
filterConfig: { //筛选配置项
|
//remote: true //远端筛选
|
},
|
customConfig: {
|
storage: true
|
},
|
editConfig: {
|
trigger: 'click',
|
mode: 'cell',
|
showStatus: true
|
},//表头参数
|
columns:[
|
{type: 'seq',fixed:"left", title: '自序', width: 80 },
|
// {field: 'buildingNumber',width:120, title: '楼号',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged},
|
{field: 'productId',width:100, title: '产品ID',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'productName',width:120, title: '产品',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'price',width:140, title: '单价',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'quantity',width:120, title: '数量',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'grossAmount',width:120, title: '总金额',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'width',width:120, title: '宽',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'height',width:120, title: '高',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'area',width:150, title: '实际单片面积',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged},
|
{field: 'grossArea',width:140, title: '实际总面积',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged},
|
{field: 'computeArea',width:180, title: '结算单片面积',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'computeGrossArea',width:140, title: '结算总面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'shape',width:120, title: '形状',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'bendRadius',width:140, title: '弯钢弧度',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'edgingType',width:140, title: '磨边类型',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'processingNote',width:140, title: '加工要求',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
|
{field: 'remarks',width:120, title: '备注',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}
|
|
|
],
|
//表单验证
|
editRules: {
|
buildingNumber: [
|
{ required: false},
|
{ min: 0, max: 255, message: '名称长度在 0 到 255 个字符' }
|
],
|
productId: [
|
{ required: true, message: '请选择产品' }
|
],
|
productName: [
|
{ required: true, message: '请选择产品' }
|
],
|
price: [
|
{
|
validator ({ cellValue }) {
|
const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
|
if ( !regex.test(cellValue) ) {
|
return new Error('输入0.00~99999.99的数字')
|
}
|
}
|
}
|
],
|
computeArea: [
|
{
|
validator ({ cellValue }) {
|
const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
|
if (!regex.test(cellValue)) {
|
return new Error('输入0.00~99999.99的数字')
|
}
|
}
|
}
|
],
|
quantity: [
|
//type: 'number', min: 0, message: '请输入大于等于0的数值' ,
|
{
|
validator ({ cellValue }) {
|
const regex = /^[1-9]\d*$/
|
if (!regex.test(cellValue)) {
|
return new Error('输入大于0的整数')
|
}
|
}}
|
],
|
width:[
|
{
|
validator ({ cellValue }) {
|
const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
|
if (!regex.test(cellValue)) {
|
return new Error('输入0.00~99999.99的数字')
|
}
|
}
|
}
|
],
|
height:[
|
{
|
validator ({ cellValue }) {
|
const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
|
if ( !regex.test(cellValue)) {
|
return new Error('输入0.00~99999.99的数字')
|
}
|
}
|
}
|
]
|
},
|
toolbarConfig: {
|
buttons: [
|
{'code': 'remarks', 'name': '加工要求'},
|
{'code': 'Craft', 'name': '工艺',status: 'primary',disabled: true},
|
{'code': 'review', 'name': '审核',status: 'primary',disabled: true},
|
{'code': 'updateMoney', 'name': '金额重置',status: 'primary',disabled: true},
|
{'code': 'saveOrder', 'name': '保存',status: 'primary',icon: 'vxe-icon-save',disabled: false}
|
],
|
slots: {
|
tools: 'toolbar_buttons'
|
},
|
// import: false,
|
// export: true,
|
// print: true,
|
zoom: true,
|
custom: true
|
}
|
,
|
//table body实际数据
|
footerMethod ({ columns, data }) {//页脚函数
|
return[
|
columns.map((column, columnIndex) => {
|
if (columnIndex === 0) {
|
return '合计:'
|
}
|
// if (props.tableProp.footList.includes(column.field)) {
|
// return sumNum(data, column.field)
|
// }
|
return ''
|
})
|
]
|
}
|
|
})
|
const gridEvents = {
|
async toolbarButtonClick({code}) {
|
const $grid = xGrid.value
|
if ($grid) {
|
switch (code) {
|
case 'remarks': {
|
dialogTableVisible.value=true
|
break
|
}
|
case 'updateMoney': {
|
updateMoney()
|
break
|
}
|
case 'Craft': {
|
await router.push({path: '/main/order/updateOrderCraft', query: {orderId: titleUploadData.value.orderId }})
|
break
|
}
|
case 'review': {
|
reviewOrder(2)
|
break
|
}
|
case 'reviews': {//反审
|
reviewOrder(0)
|
break
|
}
|
case 'saveOrder': {
|
if ($grid.getTableData().tableData.length === 0){
|
ElMessage.error('没有表格数据!')
|
return
|
}
|
if(!gridOptions.menuConfig.body.options[0][5].disabled){
|
ElMessage.error('请先打开右击菜单重新计算金额后,再保存!')
|
return
|
}
|
|
const project = titleUploadData.value.project
|
if(project === null || project === undefined || project === ''){
|
ElMessage.error('输入项目名称!')
|
return
|
}
|
const customer = titleUploadData.value.customerId
|
if(customer === null || customer === undefined || customer === ''){
|
ElMessage.error('请选择客户!')
|
return
|
}
|
const salasMan = titleUploadData.value.salesman
|
if(salasMan === null || salasMan === undefined || salasMan === ''){
|
ElMessage.error('请选择业务员!')
|
return
|
}
|
const calculateType = titleUploadData.value.calculateType
|
if(calculateType === null || calculateType === undefined || calculateType === ''){
|
ElMessage.error('请选择计算方式!')
|
return
|
}
|
|
if ($grid) {
|
const errMap = await $grid.validate(true)
|
if (errMap) {
|
ElMessage.error(`校验不通过!`)
|
return
|
}
|
let order ={
|
title:titleUploadData.value,
|
detail:$grid.getTableData().tableData
|
}
|
saveOrder(order)
|
}
|
break
|
}
|
}
|
}
|
},//头部按钮事件
|
menuClick ({ menu, row, column }) {
|
const $grid = xGrid.value
|
if ($grid) {
|
switch (menu.code) {
|
case 'deleteList': {
|
$grid.removeCheckboxRow()
|
break
|
}
|
case 'addRow': {
|
if ($grid.getTableData().tableData.length >=240){
|
ElMessage.error('表格数据已达到最大值!')
|
return
|
}
|
$grid.insert({})
|
break
|
}
|
case 'deleteRow':{
|
|
$grid.remove(rowClickIndex.value)
|
rowClickIndex.value = null
|
gridOptions.menuConfig.body.options[0][1].disabled=true
|
gridOptions.menuConfig.body.options[0][5].disabled=false
|
break
|
}
|
case 'copyChecked' :{
|
let result = toolbarButtonClickEvent()
|
if(result){
|
const dataList = xGrid.value.getTableData().visibleData
|
const val = dataList[result.start][result.cell]
|
dataList.forEach((item,index) =>{
|
if(index>=result.start && index<=result.end){
|
item[result.cell] = val
|
}
|
})
|
}
|
gridOptions.menuConfig.body.options[0][5].disabled=false
|
break
|
}
|
case 'copyAll' :{
|
let result = toolbarButtonClickEvent()
|
if(result){
|
const dataList = xGrid.value.getTableData().visibleData
|
const val = dataList[result.start][result.cell]
|
dataList.forEach((item,index) =>{
|
if(index>=result.start ){
|
item[result.cell] = val
|
}
|
})
|
}
|
gridOptions.menuConfig.body.options[0][5].disabled=false
|
break
|
}
|
case 'clearChecked' :{
|
let result = toolbarButtonClickEvent()
|
if(result){
|
const dataList = xGrid.value.getTableData().visibleData
|
dataList.forEach((item,index) =>{
|
if(index>=result.start && index<=result.end){
|
item[result.cell] = ''
|
}
|
})
|
}
|
gridOptions.menuConfig.body.options[0][5].disabled=false
|
break
|
}
|
case 'computedMoney' :{
|
const dataList = xGrid.value.getTableData().fullData
|
dataList.forEach((item,index) =>{
|
item.area = area(item)
|
item.grossArea = countArea(item)
|
item.computeArea = item.area
|
item.computeGrossArea = item.grossArea
|
item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2))
|
})
|
titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString()
|
|
gridOptions.menuConfig.body.options[0][5].disabled=true
|
break
|
}
|
}
|
}
|
},
|
cellDblclick (params) {//表格内容双击打开产品界面
|
const { row } = params
|
productVisible.value = true
|
rowIndex=row
|
},
|
cellClick({ row }){
|
rowClickIndex.value = row
|
//右键菜单删除启用
|
gridOptions.menuConfig.body.options[0][1].disabled=false
|
}
|
}
|
//获取子页面产品方法
|
const getProductRow = (row) => {
|
rowIndex.productName = row.productName
|
rowIndex.productId = row.id
|
productVisible.value = false
|
}
|
|
|
|
//初始化判断是否有id传入
|
onMounted(()=>{
|
//启用表格拖动选中
|
addListener(xGrid.value,gridOptions)
|
const str = route.query.orderId
|
if (typeof str === 'undefined' || str === null || str === '' || str === '\n' || str === '\r'){
|
return
|
}
|
request.post(`/order/getOrderById/${str}`).then((res) => {
|
if(res.code==200){
|
console.log(res.data.order)
|
titleUploadData.value = res.data.order
|
//取消工艺按钮禁用
|
gridOptions.toolbarConfig.buttons[1].disabled = false
|
//工艺审核后保存按钮禁用
|
if(res.data.order.processReview === 2){
|
gridOptions.toolbarConfig.buttons[4].disabled = true
|
}
|
//取消审核按钮禁用
|
if(res.data.order.processReview === 2 && res.data.order.orderReview === 0){
|
gridOptions.toolbarConfig.buttons[2].disabled = false
|
}
|
|
//按钮审核过后变为反审
|
if(res.data.order.orderReview === 2){
|
gridOptions.toolbarConfig.buttons[2].disabled = false
|
gridOptions.toolbarConfig.buttons[2].code='reviews'
|
gridOptions.toolbarConfig.buttons[2].name='反审'
|
gridOptions.toolbarConfig.buttons[3].disabled = false
|
}
|
if(res.data.order.productionOrder !==0 ){
|
gridOptions.toolbarConfig.buttons[2].disabled = true
|
}
|
|
//加载副表数据
|
xGrid.value.reloadData(res.data.orderDetails)
|
}else{
|
ElMessage.error(res.msg)
|
}
|
})
|
})
|
|
//页面第一次加载执行
|
request.get(`/basicData/orderBasicData`).then((res) => {
|
|
if(res.code==200){
|
titleSelectJson.value=deepClone(res.data)
|
titleUploadData.value.orderType = titleSelectJson.value.orderType[0].basicName
|
titleUploadData.value.orderClassify = titleSelectJson.value.orderClassify[0].basicName
|
titleUploadData.value.icon = titleSelectJson.value.icon[0].basicName
|
titleUploadData.value.packType = titleSelectJson.value.packType[0].basicName
|
titleUploadData.value.alType = titleSelectJson.value.alType[0].basicName
|
const today = new Date
|
today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000))
|
titleUploadData.value.deliveryDate = today.getFullYear() +
|
'-' + ("0" + (today.getMonth() + 1)).slice(-2)
|
+ '-' + ("0" + today.getDate()).slice(-2)
|
}else{
|
ElMessage.warning(res.msg)
|
}
|
})
|
|
//保存订单方法
|
const saveOrder = (order) => {
|
request.post(`/order/saveOrder`,order).then((res) => {
|
if(res.code==200){
|
ElMessage.success('保存成功')
|
router.push({path:'/main/order/selectOrder'})
|
}else {
|
ElMessage.error(res.msg)
|
}
|
})
|
}
|
|
//更新金额
|
const updateMoney = () => {
|
const updateData = {
|
order: titleUploadData.value,
|
detail: xGrid.value.getTableData().fullData
|
}
|
request.post(`/order/updateOrderMoney`,updateData).then(res => {
|
if (res.code == 200){
|
ElMessage.success('更新金额成功')
|
router.push({path:'/main/order/createOrder',query:{orderId:titleUploadData.value.orderId,random:Math.random()}})
|
}
|
|
})
|
|
}
|
|
|
// 审核订单
|
const reviewOrder = (state) => {
|
request.post(`/order/reviewOrderById/${titleUploadData.value.orderId}/${state}`).then(res =>{
|
if(res.code==200){
|
gridOptions.toolbarConfig.buttons[2].disabled = true
|
if(state==2){
|
ElMessage.success('审核成功!')
|
}else if (state==0){
|
ElMessage.success('反审成功!')
|
}
|
setTimeout(() =>{
|
location.reload()
|
},1500)
|
|
}else{
|
ElMessage.error(res.msg)
|
}
|
})
|
}
|
|
const changeCustomer = () => {
|
const changedCustomerId = titleUploadData.value.customerId
|
const customer = titleSelectJson.value.customer.filter(item => item.id === changedCustomerId)
|
titleUploadData.value.customerName = customer[0].customerName
|
//titleSelectJson.value.customer
|
}
|
|
const changeSaleMan = () => {
|
const changedSaleManId = titleUploadData.value.salesmanId
|
const SaleMan = titleSelectJson.value.saleMan.filter(item => item.id === changedSaleManId)
|
titleUploadData.value.salesman = SaleMan[0].basicName
|
}
|
|
const area = (row) => {
|
return parseFloat((row.width * row.height/1000000).toFixed(2))
|
}
|
const countArea = (row) => {
|
const area = parseFloat((row.width * row.height/1000000).toFixed(2))
|
return parseFloat((area * row.quantity).toFixed(2))
|
}
|
//计算金钱
|
const countMoney = (list) => {
|
let countMoney = 0
|
list.forEach((item)=>{
|
countMoney += parseFloat(item.grossAmount)
|
})
|
return countMoney
|
}
|
//导入功能
|
const importEvent = async () => {
|
const $grid = xGrid.value
|
const { files } = await $grid.readFile({
|
types: ['xls', 'xlsx']
|
})
|
const fileReader = new FileReader()
|
fileReader.onload = (event) => {
|
const data = event.target ? event.target.result : ''
|
const workbook = XLXS.read(data, { type: 'binary' })
|
let jsonData = XLXS.utils.sheet_to_json(workbook.Sheets.Sheet1).slice(1)
|
if(jsonData.length>240){
|
ElMessage.error(`导入${jsonData.length}条,数据不能超过240条,请分订单导入`)
|
return
|
}
|
jsonData.forEach((item,index) => {
|
if(item.computeArea === undefined){
|
item.computeArea = area(item)
|
}
|
item.area = area(item)
|
item.grossArea = countArea(item)
|
item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(2))
|
item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2))
|
})
|
//赋值表头数据
|
titleUploadData.value.money=countMoney(jsonData).toString()
|
xGrid.value.loadData(jsonData)
|
}
|
fileReader.readAsBinaryString(files[0])
|
}
|
|
//行单元格修改修改触发此事件
|
const editClosedEvent = ({ row, column }) => {
|
//判断修改相应的数值修改面积与金额
|
if (['width', 'height', 'quantity', 'price'].includes(column.property)) {
|
row.area = area(row)
|
row.grossArea = countArea(row)
|
row.computeArea = row.area
|
row.computeGrossArea = row.grossArea
|
row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2))
|
}else if(column.property === 'computeArea'){
|
row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toFixed(2))
|
row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2))
|
}
|
|
titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString()
|
}
|
|
|
|
</script>
|
|
<template>
|
<div class="main-div">
|
<div class="order-primary" style="background-color: white">
|
<el-row>
|
<el-col :span="2"><el-text>*项目名称:</el-text></el-col>
|
<el-col :span="2"><el-input v-model="titleUploadData.project"/></el-col>
|
<el-col :span="2"><el-text>*客户选择:</el-text></el-col>
|
<el-col :span="2">
|
<el-select v-model="titleUploadData.customerId"
|
@change="changeCustomer"
|
filterable
|
clearable
|
placeholder="" >
|
<el-option v-for="item in titleSelectJson['customer']"
|
:key="item.id"
|
:label="item.id+' '+item.customerName"
|
:value="item.id"
|
/>
|
</el-select>
|
</el-col>
|
<el-col :span="2"><el-text>*订单类型:</el-text></el-col>
|
<el-col :span="2">
|
<el-select v-model="titleUploadData.orderType" clearable placeholder="" >
|
<el-option
|
v-for="item in titleSelectJson['orderType']"
|
:key="item.id"
|
:label="item.basicName"
|
:value="item.basicName"
|
/>
|
</el-select>
|
</el-col>
|
<el-col :span="2"><el-text>订单分类:</el-text></el-col>
|
<el-col :span="2">
|
<el-select v-model="titleUploadData.orderClassify" clearable placeholder=" " >
|
<el-option
|
v-for="item in titleSelectJson['orderClassify']"
|
:key="item.id"
|
:label="item.basicName"
|
:value="item.basicName"
|
/>
|
</el-select>
|
</el-col>
|
<el-col :span="2"><el-text>商标选项:</el-text></el-col>
|
<el-col :span="2">
|
<el-select v-model="titleUploadData.icon" clearable placeholder=" " >
|
<el-option v-for="item in titleSelectJson['icon']"
|
:key="item.id"
|
:label="item.basicName"
|
:value="item.basicName"/>
|
</el-select>
|
</el-col>
|
<el-col :span="2"><el-text>包装方式:</el-text></el-col>
|
<el-col :span="2">
|
<el-select v-model="titleUploadData.packType" clearable placeholder=" " >
|
<el-option v-for="item in titleSelectJson['packType']"
|
:key="item.id"
|
:label="item.basicName"
|
:value="item.basicName"/>
|
</el-select>
|
</el-col>
|
<!-- <el-col :span="2"><el-text /></el-col>-->
|
</el-row>
|
<el-row>
|
<el-col :span="2"><el-text>销售单号:</el-text></el-col>
|
<el-col :span="2"><el-text >{{titleUploadData.orderId}}</el-text></el-col>
|
<el-col :span="2"><el-text>交货日期:</el-text></el-col>
|
<el-col :span="2">
|
<el-date-picker
|
v-model="titleUploadData.deliveryDate"
|
type="date"
|
placeholder=""
|
/>
|
</el-col>
|
<el-col :span="2"><el-text>批次:</el-text></el-col>
|
<el-col :span="2"><el-input v-model="titleUploadData.batch"/></el-col>
|
<el-col :span="2"><el-text>计算方式:</el-text></el-col>
|
<el-col :span="2">
|
<el-select v-model="titleUploadData.calculateType" clearable placeholder=" " >
|
<el-option :value="1" label="面积金额(单片)"/>
|
</el-select>
|
</el-col>
|
<el-col :span="2"><el-text>*业务员:</el-text></el-col>
|
<el-col :span="2">
|
<el-select
|
v-model="titleUploadData.salesmanId"
|
@change = "changeSaleMan"
|
clearable
|
placeholder=" "
|
>
|
<el-option v-for="item in titleSelectJson['saleMan']"
|
:key="item.id"
|
:label="item.basicName"
|
:value="item.id"/>
|
</el-select>
|
</el-col>
|
<el-col :span="2"><el-text>铝条方式:</el-text></el-col>
|
<el-col :span="2">
|
<el-select v-model="titleUploadData.alType" clearable placeholder=" " >
|
<el-option v-for="item in titleSelectJson['alType']"
|
:key="item.id"
|
:label="item.basicName"
|
:value="item.basicName"/>
|
</el-select>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="2"><el-text>总金额:</el-text></el-col>
|
<el-col :span="2"><el-text >{{titleUploadData.money}}</el-text></el-col>
|
<el-col :span="2"><el-text>合同编号:</el-text></el-col>
|
<el-col :span="2"><el-input v-model="titleUploadData.contractId"/></el-col>
|
<el-col :span="2"><el-text>客户批次:</el-text></el-col>
|
<el-col :span="2"><el-input v-model="titleUploadData.customerBatch"/></el-col>
|
<el-col :span="2"><el-text>联系人:</el-text></el-col>
|
<el-col :span="2"><el-input v-model="titleUploadData.contacts" /></el-col>
|
<el-col :span="2"><el-text>联系电话:</el-text></el-col>
|
<el-col :span="2"><el-input v-model="titleUploadData.contactNumber"/></el-col>
|
<el-col :span="2"><el-text >送货地址:</el-text></el-col>
|
<el-col :span="2"><el-input v-model="titleUploadData.deliveryAddress"/></el-col>
|
</el-row>
|
<!-- <el-row>-->
|
<!-- <el-col :span="2"><el-text>其他金额:</el-text></el-col>-->
|
<!-- <el-col :span="2"><el-text /></el-col>-->
|
<!-- <el-col :span="2"><el-text>其他金额备注:</el-text></el-col>-->
|
<!-- <el-col :span="2"><el-text /></el-col>-->
|
|
<!-- </el-row>-->
|
</div>
|
<div class="order-detail">
|
<vxe-grid
|
max-height="100%"
|
class="mytable-scrollbar"
|
ref="xGrid"
|
v-bind="gridOptions"
|
v-on="gridEvents"
|
@edit-closed="editClosedEvent"
|
>
|
<template #num1_filter="{ column, $panel }">
|
<div>
|
<div v-for="(option, index) in column.filters" :key="index">
|
<input type="text"
|
v-model="option.data"
|
@input="changeFilterEvent($event, option, $panel)"/>
|
</div>
|
</div>
|
</template>
|
<template #toolbar_buttons>
|
<vxe-button @click="importEvent">导入</vxe-button>
|
</template>
|
|
|
</vxe-grid>
|
</div>
|
<el-dialog v-model="dialogTableVisible" title="加工要求" style="width: 60%;height:75% ">
|
<el-input
|
v-model="titleUploadData.processingNote"
|
type="textarea"
|
:autosize="{ minRows: 2, maxRows: 20 }"
|
/>
|
</el-dialog>
|
<el-dialog v-model="productVisible" style="width: 80%;height:75% ">
|
<select-product :rowIndex="rowIndex" @getProductRow="getProductRow" style="width: 100%;height: 100%" />
|
</el-dialog>
|
<!--选中表格 -->
|
<!-- <div class="vxe-table--cell-area" ref="cellArea" >-->
|
<!-- <span class="vxe-table--cell-main-area" ></span>-->
|
|
<!-- <span class="vxe-table--cell-active-area" ></span>-->
|
<!-- </div>-->
|
|
</div>
|
</template>
|
|
<style scoped>
|
.main-div {
|
width: 100%;
|
height: 100%;
|
text-align: center;
|
}
|
.el-col{
|
border: #181818 1px solid;
|
}
|
:deep(.el-input__wrapper) {
|
box-shadow: 0 0 0 0 var(--el-input-border-color, var(--el-border-color)) inset;
|
cursor: default;
|
border: none !important;
|
background-color: transparent;
|
}
|
.order-primary{
|
width: 100%;
|
}
|
.order-detail{
|
width: 100%;
|
height: 85%;
|
}
|
.vxe-grid {
|
/* 禁用浏览器默认选中 */
|
-webkit-user-select: none;
|
-moz-user-select: none;
|
-ms-user-select: none;
|
user-select: none;
|
}
|
|
</style>
|