| | |
| | | review:'Проверка', |
| | | cancelReview:'Пересмотр', |
| | | theProductHasBeenReviewedAndCannotBeDeleted:'Продукция проверена и не может быть удалена', |
| | | |
| | | productAbbreviation:'Продукция', |
| | | } |
| | | }, |
| | | order:{ |
| | |
| | | customerOrders:'Заказы клиентов', |
| | | orderAmount:'Сумма заказа', |
| | | |
| | | customerAbbreviation:'Клиенты Сокращения', |
| | | pleaseEnterTheCustomerAbbreviation:'Пожалуйста, введите сокращение клиента.', |
| | | }, |
| | | delivery:{ |
| | | delivery:'Отправка', |
| | |
| | | review:'审核', |
| | | cancelReview:'反审', |
| | | theProductHasBeenReviewedAndCannotBeDeleted:'产品已审核,无法删除', |
| | | |
| | | productAbbreviation:'产品简称', |
| | | } |
| | | }, |
| | | order:{ |
| | |
| | | customerOrders:'客户订单', |
| | | orderAmount:'订单金额', |
| | | |
| | | customerAbbreviation:'客户简称', |
| | | pleaseEnterTheCustomerAbbreviation:'请输入客户简称', |
| | | }, |
| | | delivery:{ |
| | | delivery:'发货', |
| | |
| | | import CreateBasicData from "@/views/sd/basicData/CreateBasicData.vue" |
| | | import {useRouter,useRoute} from "vue-router" |
| | | import {useI18n} from "vue-i18n" |
| | | import {changeFilterEvent, filterChanged} from "@/hook"; |
| | | const { t } = useI18n() |
| | | |
| | | let dialogTableVisible = ref(false) |
| | | const router = useRouter() |
| | | |
| | | let basic = ref({ |
| | | basicType : ['',''], |
| | | }) |
| | | let options=ref([ |
| | | { "label": t('orderBasicData.order'), |
| | | "value": "order", |
| | | "children": [ |
| | | { |
| | | "label": t('orderBasicData.orderType'), |
| | | "value": "orderType" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.orderClassify'), |
| | | "value": "orderClassify" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.icon'), |
| | | "value": "icon" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.packType'), |
| | | "value": "packType" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.alType'), |
| | | "value": "alType" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.saleMan'), |
| | | "value": "saleMan" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.product'), |
| | | "value": "product", |
| | | "children": [ |
| | | { |
| | | "label": t('orderBasicData.stuffThickness'), |
| | | "value": "stuffThickness" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.stuffColor'), |
| | | "value": "stuffColor" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.stuffCraft'), |
| | | "value": "stuffCraft" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.stuffPosition'), |
| | | "value": "stuffPosition" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.stuffLowE'), |
| | | "value": "stuffLowE" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.InterlayerThickness'), |
| | | "value": "InterlayerThickness" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.InterlayerType'), |
| | | "value": "InterlayerType" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.InterlayerColor'), |
| | | "value": "InterlayerColor" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.process'), |
| | | "value": "process" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.hollowThickness'), |
| | | "value": "hollowThickness" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.hollowGasType'), |
| | | "value": "hollowGasType" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.hollowType'), |
| | | "value": "hollowType" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.hollowGlueDepth'), |
| | | "value": "hollowGlueDepth" |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "children": [ |
| | | { |
| | | "label": t('orderBasicData.paymentTerms'), |
| | | "value": "paymentTerms" |
| | | }, |
| | | { |
| | | "label": t('orderBasicData.payMethod'), |
| | | "value": "payMethod" |
| | | } |
| | | ], |
| | | "label": t('orderBasicData.delivery'), |
| | | "value": "delivery" |
| | | } |
| | | ]) |
| | | |
| | | |
| | | const xGrid = ref() |
| | | const gridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | //remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | |
| | | columns:[ |
| | | {title: t('basicData.operate'), width: 110, slots: { default: 'button_slot' },fixed:"left",}, |
| | | {type: 'seq', title: t('basicData.number'), width: 80 ,fixed:"left",}, |
| | | {field:'basicName',title: t('orderBasicData.name')}, |
| | | {field:'basicName',title: t('orderBasicData.name'),filters: [{data: ''}],slots: {filter: 'num1_filter'},filterMethod: filterChanged}, |
| | | {field:'nickname',title: t('orderBasicData.alias')}, |
| | | {field:'createTime',title: t('basicData.creationTime')}, |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | const handleChange = () => { |
| | | console.log(basic.value.basicType[1]) |
| | | request.get(`/basicData/BasicDataByType/${basic.value.basicType[0]}/${basic.value.basicType[1]}`).then(res => { |
| | | if(res.code==='200'){ |
| | | xGrid.value.reloadData(res.data) |
| | | } |
| | | }) |
| | | |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-cascader |
| | | v-model="basic.basicType" |
| | | @change="handleChange" |
| | | :options="options" |
| | | clearable |
| | | placeholder="" |
| | | /> |
| | | </el-col> |
| | | </el-row> |
| | | <vxe-grid |
| | | style="width: 40vw;" |
| | | class="mytable-scrollbar" |
| | |
| | | </el-popconfirm> |
| | | </template> |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input v-model="option.data" type="text" @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | </vxe-grid> |
| | | <el-dialog |
| | | v-model="dialogTableVisible" |
| | |
| | | let ruleForm = ref({ |
| | | id:0, |
| | | customerName: '', |
| | | customerAbbreviation: '', |
| | | grade: '', |
| | | moneyLimit: '', |
| | | address: '', |
| | |
| | | const str = route.query.id |
| | | if (typeof str != 'undefined' && str != null && str !== '' && str !== '\n' && str !== '\r'){ |
| | | ruleForm.value.id = Number(str) |
| | | |
| | | console.log(ruleForm.value) |
| | | request.post(`/customer/getSelectCustomer/1/100`,ruleForm.value).then((res) => { |
| | | if(res.code==200){ |
| | | console.log(res.data.data[0]) |
| | | ruleForm.value=deepClone(res.data.data[0]) |
| | | |
| | | }else{ |
| | |
| | | let flowData = ref({ |
| | | customer: ruleForm |
| | | }) |
| | | |
| | | console.log() |
| | | request.post("/customer/insertCustomer", flowData.value).then((res) => { |
| | | if(res.code==200 && res.data===true){ |
| | | resetForm() |
| | |
| | | } |
| | | //重置输入框 |
| | | const resetForm = () => { |
| | | ruleForm.value.id=0 |
| | | ruleForm.value.customerName="" |
| | | ruleForm.value.customerAbbreviation="" |
| | | ruleForm.value.grade="" |
| | | ruleForm.value.moneyLimit="" |
| | | ruleForm.value.address="" |
| | |
| | | <el-col :span="5"><el-input style="font-size: large;color: #181818" v-model="ruleForm.customerName" ></el-input></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="2"><el-text>{{ $t('customer.customerAbbreviation') }}:</el-text></el-col> |
| | | <el-col :span="5"><el-input style="font-size: large;color: #181818" v-model="ruleForm.customerAbbreviation" ></el-input></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="2"><el-text>{{ $t('customer.customerGrade') }}:</el-text></el-col> |
| | | <el-col :span="5"><el-input style="font-size: large;color: #181818" v-model="ruleForm.grade" ></el-input></el-col> |
| | | </el-row> |
| | |
| | | </div> |
| | | |
| | | <div id="main-body"> |
| | | <router-view /> |
| | | <router-view :key="route.fullPath" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | request.post(`/customer/getSelectCustomer/1/${total.pageSize}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | console.log(res.data.data) |
| | | total.dataTotal = res.data.total.total*1 |
| | | total.pageTotal= res.data.total.pageTotal |
| | | pageNum.value=1 |
| | |
| | | {title: t('basicData.operate'), width: 180, slots: { default: 'button_slot' },fixed:"left"}, |
| | | {field: 'id', title: t('customer.customerNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'customerName', title: t('customer.customerName'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'customerAbbreviation', title: t('customer.customerAbbreviation'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'grade', title: t('customer.customerGrade'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'moneyLimit', title: t('customer.moneyLimit'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'address', title: t('customer.address'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | |
| | | ],//表格表头字段 |
| | | data:[],//表格数据 |
| | | url :'/order/getOrderProductSummary', |
| | | exportUrl :'/order/getOrderProductSummary', |
| | | exportUrl :'/order/exportOrderReport', |
| | | exportName:t('order.orderDetailsSummaryReport'), |
| | | footList:['quantity','grossArea','computeGrossArea','perimeter','price','grossAmount'] |
| | | }) |
| | |
| | | } |
| | | }) |
| | | productTotal.value.productName=productName |
| | | productTotal.value.productAbbreviation=productName.split("mm").join("") |
| | | let product = { |
| | | title: productTotal.value, |
| | | detail:productDetailList.value |
| | |
| | | hollowFlag.value.flag=true |
| | | hollowFlag.value.index=null |
| | | } |
| | | |
| | | const productName = computed(() =>{ |
| | | let productName = "" |
| | | productDetailList.value.forEach(item =>{ |
| | |
| | | <el-input v-model="productTotal.remarks" size="small" /> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="grid-content ep-bg-purple" > |
| | | <el-text class="mx-1" |
| | | style="margin-left: 0.5rem;text-align: center"> |
| | | {{ $t('product.msg.productAbbreviation') }}: |
| | | </el-text> |
| | | <el-input v-model="productTotal.productAbbreviation" size="small" /> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </div> |
| | |
| | | </el-col> |
| | | <el-col :span="20"> |
| | | <div class="grid-content ep-bg-purple" > |
| | | <el-input :value="productName" size="large" disabled /> |
| | | <el-input :value="productName" size="large" /> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | |
| | | private Long id; |
| | | private String customerName; |
| | | private String customerAbbreviation; |
| | | private String grade; |
| | | private Double moneyLimit; |
| | | private String address; |
| | |
| | | <if test="customer.customerName != null and customer.customerName != ''"> |
| | | and c.customer_name regexp #{customer.customerName} |
| | | </if> |
| | | <if test="customer.customerAbbreviation != null and customer.customerAbbreviation != ''"> |
| | | and c.customer_abbreviation regexp #{customer.customerAbbreviation} |
| | | </if> |
| | | <if test="customer.grade != null and customer.grade != ''"> |
| | | and c.grade regexp #{customer.grade} |
| | | </if> |
| | |
| | | </select> |
| | | |
| | | <insert id="insertCustomer" useGeneratedKeys="true" > |
| | | insert into sd.customer(customer_name,grade,money_limit,address,contact,phone) |
| | | insert into sd.customer(customer_name,customer_abbreviation,grade,money_limit,address,contact,phone) |
| | | values ( |
| | | #{customer.customerName},#{customer.grade},#{customer.moneyLimit}, |
| | | #{customer.customerName},#{customer.customerAbbreviation},#{customer.grade},#{customer.moneyLimit}, |
| | | #{customer.address},#{customer.contact},#{customer.phone} |
| | | ) |
| | | </insert> |
| | | |
| | | <update id="updateCustomer" useGeneratedKeys="true" > |
| | | update sd.customer set customer_name=#{customer.customerName},grade=#{customer.grade}, |
| | | update sd.customer set customer_name=#{customer.customerName},customer_abbreviation=#{customer.customerAbbreviation},grade=#{customer.grade}, |
| | | money_limit=#{customer.moneyLimit},address= #{customer.address}, |
| | | contact=#{customer.contact},phone=#{customer.phone} where id=#{customer.id} |
| | | </update> |
| | |
| | | od.gross_amount, |
| | | od.compute_gross_area, |
| | | ifnull(od.processing_note,"") as processingNote, |
| | | ifnull(od.remarks,"") as buildingNumber, |
| | | ifnull(od.building_number,"") as buildingNumber, |
| | | od.price |
| | | from order_detail od |
| | | where od.order_id = #{orderId} |