Merge branch 'master' of http://bore.pub:10439/r/ERP_override
| | |
| | | {column:'height',title:null} |
| | | ]) |
| | | const order = ref({ |
| | | orderId:'order', |
| | | project:'order', |
| | | orderType:'order', |
| | | customers:'order', |
| | | icon:'order', |
| | | orderClassify:'order', |
| | | packType:'order', |
| | | deliveryDate:'order', |
| | | batch:'order', |
| | | calculateType:'order', |
| | | salesman:'order', |
| | | alType:'order', |
| | | money:'order', |
| | | orderId:'order.orderId', |
| | | project:'order.project', |
| | | orderType:'order.orderType', |
| | | customerName:'order.customers', |
| | | icon:'order.icon', |
| | | orderClassify:'order.orderClassify', |
| | | packType:'order.packType', |
| | | deliveryDate:'order.deliveryDate', |
| | | batch:'order.batch', |
| | | salesman:'order.salesman', |
| | | alType:'order.alType', |
| | | money:'order.money', |
| | | contractId:'order', |
| | | customerBatch:'order', |
| | | contacts:'order', |
| | | contactNumber:'order', |
| | | deliveryAddress:'order', |
| | | processingNote:'order', |
| | | verifier:'order', |
| | | productName:'order.orderDetail', |
| | | }) |
| | | |
| | | const tags = ref([]) |
| | |
| | | <el-select :placeholder="$t('components.orderHeader')"> |
| | | <el-option @click="addList(keys,item)" |
| | | v-for="(item,keys,index) in order" |
| | | :label="$t(item+'.'+keys)" :value="keys"/> |
| | | :label="$t(item)" :value="keys"/> |
| | | |
| | | </el-select> |
| | | |
| | |
| | | |
| | | columns:[ |
| | | {type: 'seq', title: t('basicData.Number'), width: 80 }, |
| | | {field: 'buildingNumber',width:120, title: t('order.floorNumber'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'buildingNumber',width:120, title: t('order.buildingNumber'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'productId',width:140, title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'productName',width:300, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | //{field: 'price',width:140, title: t('order.price'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | |
| | | levelTwo:'Второй уровень', |
| | | orderDetailsReport:'Отчет о деталях заказа', |
| | | orderDetailsSummaryReport:'Сводный отчет о заказах', |
| | | floorNumber:'Номер этажа', |
| | | buildingNumber:'Номер этажа', |
| | | saveHeader:'Изменить заголовок таблицы', |
| | | msg:{ |
| | | productCheck:'Пожалуйста, выберите продукт', |
| | |
| | | project:'项目名称', |
| | | orderId:'销售单号', |
| | | money:'总金额', |
| | | customers:"客户选择", |
| | | customers:"客户信息", |
| | | deliveryDate:"交货日期", |
| | | contractId:'合同编号', |
| | | orderType:'订单类型', |
| | |
| | | levelTwo:'产品小类', |
| | | orderDetailsReport:'订单明细报表', |
| | | orderDetailsSummaryReport:'订单明细汇总报表', |
| | | floorNumber:'楼层编号', |
| | | buildingNumber:'楼层编号', |
| | | saveHeader:'保存表头', |
| | | msg:{ |
| | | productCheck:'请选择产品', |
| | |
| | | {field: 'computeGrossArea', title: t('processCard.areaToDivided'), width: '60px'}, |
| | | {field: 'totalThickness', title: t('processCard.totalThickness'), width: '80px'}, |
| | | {field: 'thickness', title: t('processCard.glassThickness'), width: '60px'}, |
| | | {field: 'weight', title: t('processCard.weight')} |
| | | {field: 'weight', title: t('processCard.weight'),slots:{default:'weight_sum'}} |
| | | ],//表头按钮 |
| | | |
| | | toolbarConfig: { |
| | |
| | | }, |
| | | |
| | | } |
| | | const weightSum = (row) =>{ |
| | | return parseFloat((row.baiscQuantity*row.thickness*row.width*row.height*2.5/1000000).toFixed(2)) |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | </template> |
| | | |
| | | |
| | | |
| | | </vxe-grid> |
| | | |
| | | </el-aside> |
| | |
| | | </li> |
| | | </ul> |
| | | </template> |
| | | <template #weight_sum="{ row }"> |
| | | <span>{{ weightSum(row) }} </span> |
| | | </template> |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | |
| | | |
| | | /*成*/ |
| | | .printFlowCard_finished { |
| | | /* |
| | | font-family: 'Microsoft YaHei', '微软雅黑', sans-serif; |
| | | */ |
| | | flex-wrap: wrap; |
| | | font-size: 12pt; |
| | | display: flex; |
| | |
| | | display: flex; |
| | | text-align: center; |
| | | flex-direction:column; |
| | | margin-left: 10px; |
| | | width: 100%; |
| | | height: 100%; |
| | | |
| | |
| | | .row4{ |
| | | font-weight: bolder; |
| | | text-align: right; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .row1,.row2{ |
| | |
| | | |
| | | @page { |
| | | size: auto; /* auto is the initial value */ |
| | | margin: 13mm 0mm 0mm 6mm; /* this affects the margin in the printer settings */ |
| | | margin: 13mm 4mm 0mm 6mm; /* this affects the margin in the printer settings */ |
| | | } |
| | | |
| | | @media print { |
| | |
| | | <div class="row2">{{ item1.order[item.name] }}</div> |
| | | |
| | | </div> |
| | | <div class="row3"><label>W:</label>{{ item1.width }} <label>H:</label>{{ item1.height }}</div> |
| | | <div class="row3"> |
| | | <label>W:{{ item1.width }}</label> |
| | | |
| | | <label>H:{{ item1.height }}</label> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | body{ |
| | | overflow: hidden; |
| | | font-family: 'Microsoft YaHei', '微软雅黑', sans-serif; |
| | | |
| | | } |
| | | |
| | | #printButton { |
| | |
| | | |
| | | .row1,.row2{ |
| | | text-align: left; |
| | | font-weight: bolder; |
| | | } |
| | | |
| | | @page { |
| | |
| | | <tr v-for="(itemFlow,index) in item.detail" :key="index"> |
| | | <td colspan="24"> |
| | | <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div> |
| | | <div>常州市吉利玻璃有限公司</div> |
| | | <div>天津北方玻璃技术股份有限公司</div> |
| | | <div>生产流程卡</div> |
| | | <div style="text-align: right;font-weight: bolder">流程卡号: {{ |
| | | itemFlow.process_id |
| | |
| | | <td></td> |
| | | <td></td> |
| | | </tr> |
| | | <!-- <tr>--> |
| | | <!-- <td>接受签名</td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- </tr>--> |
| | | <tr> |
| | | <td>生产日期</td> |
| | | <td></td> |
| | |
| | | <td></td> |
| | | <td></td> |
| | | </tr> |
| | | <!-- <tr>--> |
| | | <!-- <td>架子编号</td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- <td></td>--> |
| | | <!-- </tr>--> |
| | | <tr v-for="(qrCodeItem,index) in item.detail" :key="index"> |
| | | <td rowspan="2"> |
| | | <div class='qrCode' style="width: 80px;height: 80px;"> |
| | | <img :src= qrCodeItem.qrcode> |
| | | <!-- {{--> |
| | | <!-- getUrl(qrCodeItem.process_id)--> |
| | | <!-- }}--> |
| | | |
| | | </div> |
| | | |
| | | </td> |
| | |
| | | |
| | | //获取七天前到当前时间 |
| | | function getNowTime() { |
| | | const start = new Date(new Date().getTime() - 3600 * 1000 * 24 * 7) |
| | | const start = new Date(new Date().getTime() - 3600 * 1000 * 24 * 10) |
| | | .toISOString() |
| | | .replace('T', ' ') |
| | | .slice(0, 10) //默认开始时间7天前 |
| | |
| | | |
| | | }) |
| | | |
| | | /*onMounted(() => { |
| | | //启用表格拖动选中 |
| | | addListener(xGrid.value, gridOptions) |
| | | })*/ |
| | | |
| | | let inputDisabled = ref(false) |
| | | onMounted(() =>{ |
| | | if(route.query.processId !== undefined && route.query.processId!=='' && route.query.processId!=null ){ |
| | |
| | | trigger: 'click', |
| | | mode: 'row', |
| | | showStatus: true |
| | | },//表头参数 |
| | | }, |
| | | /*menuConfig: { |
| | | body: { |
| | | options: [ |
| | | [ |
| | | { |
| | | code: 'copyChecked', |
| | | name: t('basicData.selectSame'), |
| | | prefixIcon: 'vxe-icon-copy', |
| | | visible: true, |
| | | disabled: false |
| | | }, |
| | | { |
| | | code: 'copyAll', |
| | | name: t('basicData.sameAfterwards'), |
| | | prefixIcon: 'vxe-icon-feedback', |
| | | visible: true, |
| | | disabled: false |
| | | }, |
| | | { |
| | | code: 'clearChecked', |
| | | name: t('basicData.clearSelection'), |
| | | prefixIcon: 'vxe-icon-indicator', |
| | | visible: true, |
| | | disabled: false |
| | | }, |
| | | ] |
| | | ] |
| | | } |
| | | },*/ |
| | | //表头参数 |
| | | columns: [ |
| | | // {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | { |
| | |
| | | //改变brokenVisible的值触发openedBrokenTable()方法 |
| | | brokenVisible.value = true |
| | | |
| | | } |
| | | }, |
| | | /*menuClick({menu, row, column}) { |
| | | const $grid = xGrid.value |
| | | if ($grid) { |
| | | switch (menu.code) { |
| | | case 'copyChecked' : { |
| | | let result = toolbarButtonClickEvent() |
| | | if (result.cell === "completedQuantity"){ |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | |
| | | break |
| | | } |
| | | case 'copyAll' : { |
| | | let result = toolbarButtonClickEvent() |
| | | if (result.cell === "completedQuantity" ) { |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | break |
| | | } |
| | | case 'clearChecked' : { |
| | | let result = toolbarButtonClickEvent() |
| | | if (result.cell === "completedQuantity" ) { |
| | | if (result) { |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | dataList.forEach((item, index) => { |
| | | if (index >= result.start && index <= result.end) { |
| | | item[result.cell] = '' |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | break |
| | | } |
| | | } |
| | | } |
| | | },*/ |
| | | } |
| | | |
| | | |
| | |
| | | ElMessage.warning(t('reportingWorks.selectProcess')) |
| | | return |
| | | } |
| | | |
| | | if (titleSelectJson.value.thisProcessType.indexOf(process) === -1 && process !== t('machine.cutting') && titleSelectJson.value.thisProcessType !== "") { |
| | | ElMessage.warning(t('reportingWorks.thisProcessNotProcessCard')) |
| | | return |
| | | if (titleSelectJson.value.thisProcessType.length!=0){ |
| | | if (titleSelectJson.value.thisProcessType.indexOf(process) === -1 && process !== t('machine.cutting')) { |
| | | ElMessage.warning(t('reportingWorks.thisProcessNotProcessCard')) |
| | | return |
| | | } |
| | | } |
| | | |
| | | //匹配“/”前后字符串 |
| | | const regex = /([^\/]+)\/([^\/]+)/; |
| | | //查找匹配的字符串 |
| | |
| | | <!-- 刺破类型breakageType --> |
| | | <template #breakageType="{ row }"> |
| | | <vxe-select v-model="row.breakageType " |
| | | filterable |
| | | clearable |
| | | placeholder=""> |
| | | clearable placeholder=" " allow-create filterable> |
| | | <vxe-option v-for="item in titleSelectJson.breakageType" :key="item.id" :label="item.basic_name" :value="item.basic_name"/> |
| | | </vxe-select> |
| | | </template> |
| | |
| | | <!--次破原因--> |
| | | <template #breakageReason="{ row }"> |
| | | <vxe-select v-model="row.breakageReason " |
| | | filterable |
| | | clearable |
| | | placeholder=""> |
| | | clearable placeholder=" " allow-create filterable> |
| | | <vxe-option v-for="item in titleSelectJson.breakageReason" :key="item.id" :label="item.basic_name" :value="item.basic_name"/> |
| | | </vxe-select> |
| | | </template> |
| | |
| | | {type: 'seq',fixed:"left", title: t('basicData.Number'), width: 80 }, |
| | | {field: 'productId',width:140, title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'productName',width:300, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'buildingNumber',width:120, title: t('order.floorNumber'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'buildingNumber',width:120, title: t('order.buildingNumber'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'price',width:140, title: t('order.price'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'grossAmount',width:160, title: t('order.grossAmount'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'width',width:120, title: t('order.width') ,editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | |
| | | ) |
| | | |
| | | saveOrderTitle(order) |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | break |
| | | } |
| | |
| | | od.order_number = fc.order_number |
| | | where fc.process_id = #{processId} |
| | | and fc.technology_number=#{technologyNumber} |
| | | group by od.order_number,width,height |
| | | |
| | | group by od.order_number,width,height |
| | | order by IF(fc.sort!=NULL||fc.sort!='',fc.sort,fc.order_number) |
| | | </select> |
| | | |
| | | <select id="getPrintLabelCount"> |