Commit eef3a74b authored by wangdanlei's avatar wangdanlei

调胶

parent 2611d0c0
...@@ -19,7 +19,7 @@ import _get from 'lodash.get' ...@@ -19,7 +19,7 @@ import _get from 'lodash.get'
import _set from 'lodash.set' import _set from 'lodash.set'
import router from '../router' import router from '../router'
import { downFileByFileId } from '../api/file' import { downFileByFileId } from '../api/file'
import { export_json_to_excel } from '@/Excel/Export2Excel' import { export_json_to_excel } from '../Excel/Export2Excel'
// 限制promise并发数量 // 限制promise并发数量
export function promiseLimit(func, funcParams, limit = 5) { export function promiseLimit(func, funcParams, limit = 5) {
let i = 0 let i = 0
...@@ -1630,7 +1630,35 @@ export function export_excel(columns, tableData, title) { ...@@ -1630,7 +1630,35 @@ export function export_excel(columns, tableData, title) {
const data = formatJson(filterVal, tableData) const data = formatJson(filterVal, tableData)
export_json_to_excel(tHeader, data, title) export_json_to_excel(tHeader, data, title)
} }
export function dateFormat(date) {
// 日期格式化
const d = new Date(date)
const year = d.getFullYear()
let month = d.getMonth() + 1
month = '0' + month
month = month.substring(month.length - 2)
let day = '0' + d.getDate()
day = day.substring(day.length - 2)
let hour = '0' + d.getHours()
hour = hour.substring(hour.length - 2)
let m = '0' + d.getMinutes()
m = m.substring(m.length - 2)
let s = '0' + d.getSeconds()
s = s.substring(s.length - 2)
return year + '-' + month + '-' + day + ' ' + hour + ':' + m + ':' + s
}
export function findByNameVnode(obj, targetName) {
if (obj && obj.$vnode && obj.$vnode.tag && obj.$vnode.tag.includes(targetName)) {
return obj
} else {
return findByNameVnode(obj.$parent, targetName)
}
}
export default { export default {
findByNameVnode,
dateFormat,
treeFindBackArray, treeFindBackArray,
throttle, throttle,
formateFilterDataFun, formateFilterDataFun,
......
export default {
props: {},
layoutConfigData: [
{
title: '高级组件配置',
data: [
{
title: '是否首次加载',
key: 'loadState',
component: {
name: 'el-input',
placeholder: '',
options: []
}
},
{
title: 'attrKey',
key: 'attrKey',
component: {
name: 'el-input',
placeholder: ''
}
},
{
title: '是否禁用',
key: 'disabled',
component: {
name: 'el-select',
placeholder: '',
options: [{
label: '是',
value: true
},
{
label: '否',
value: false
}]
}
}
]
}
],
data() {
return {
}
},
created() {
},
computed: {
},
methods: {
}
}
<template>
<div>
<PrintTag ref="print" :config="printConfig" />
</div>
</template>
<script>
import { post } from '@/utils/http'
import PrintTag from './printTag'
export default {
name: 'SubpackagePrint',
components: { PrintTag },
props: {
baseComInfo: {
type: Object,
default: null
}
},
data() {
return {
sectionData: [],
printConfig: {
visible: false,
width: 260,
prints: []
}
}
},
computed: {},
watch: {},
// 生命周期 - 创建完成(可以访问当前this 实例)
created() {
},
// 生命周期 - 挂载之前
beforeMount() {
},
// 生命周期 - 挂载完成(可以访问 DOM 元素)
mounted() {
this.eventFunc()
},
methods: {
eventFunc() {
this.selectedData = this.$utils.findByNameVnode(this, 'DeeAsTable').selectedData
if (this.selectedData.length) {
let state = true
this.selectedData.forEach(item => {
if (item.state !== 'Audited') {
state = false
}
})
if (!state) {
this.$utils.showMessageWarning('勾选数据中存在状态为未审核的数据!')
} else {
this.print()
}
}
},
print() {
this.selectedData = this.$utils.findByNameVnode(this, 'DeeAsTable').selectedData
this.loading = true
const params = {
'pageFrom': 1,
'pageSize': 1,
'searchItems': {
'items': [
{
'fieldName': 'id',
'operator': 'EQ',
'value': this.selectedData[0].id
}
],
'operator': 'AND'
},
'openProps': [
{
'name': 'assignCard',
'openProps': [
{
'name': 'material'
}
]
}
],
'sortItem': [
{
'fieldName': 'modifyTime',
'sortOrder': 'desc'
}
]
}
post('/AssignCardItem/detail', params)
.then((res) => {
var data = res.items.content[0]
this.printConfig = Object.assign({}, this.printConfig, {
visible: true
})
var b =
(data.assignCard.validityEnd &&
data.assignCard.validityEnd.split(':')) ||
[]
b.pop()
var c = (data.thawPickTime && data.thawPickTime.split(':')) || []
c.pop()
var d = (data.activeTime && data.activeTime.split(':')) || []
d.pop()
this.printConfig.prints = [
{
text: data.itemNo,
title: '胶料冷冻标签',
count: data.weight,
number: { label: '编号', value: data.itemNo },
mark: {
label: '牌号',
value: data.assignCard.modelNo
},
mixingUnit: {
label: '合格证号',
value: data.assignCard.certificateNo
},
remainingConstructionPeriod: {
label: '剩余施工期',
value: data.assignCard.leftWorkMinutes
},
ineffectiveTime: {
label: '失效时间',
value: b.join(':')
},
validity: {
label: '解冻及施工期',
value: {
start: {
label: '始',
value: c.join(':')
},
end: {
label: '止',
value: d.join(':')
}
}
},
deployment: { label: '调配员', value: data.creator.userName },
inspector: {
label: '检验员',
value: data.assignCard.checker
}
}
]
this.$refs.print.print()
})
.catch((err) => console.log(err))
.finally(() => {
this.loading = false
})
}
}
}
</script>
<style lang='scss' scoped>
</style>
...@@ -4,7 +4,36 @@ ...@@ -4,7 +4,36 @@
:lay-config="layConfig" :lay-config="layConfig"
@tableToolHandler="tableToolHandler" @tableToolHandler="tableToolHandler"
@row-click="onRowClick" @row-click="onRowClick"
@selectionChange="selectionChange($event)"
/> />
<dee-drawer
width="60%"
title="创建调胶调配记录卡"
:dialog-visible="drawer"
@handleClose="handleClose"
>
<dee-as-com
:lay-config="{
typeName: 'AssignCard',
layKey: 'defaultCreate'
}"
:basic-data=" { ...basicData,setAttrs:setAttrs }"
/>
</dee-drawer>
<dee-dialog title="区域" :dialog-visible="dialogVisible" width="20%" @handleClose="dialogAddClose">
<el-select v-model="productArea">
<el-option
v-for="item in productAreaOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<div slot="footer">
<el-button type="primary" :disabled="!productArea" @click="save">确 定</el-button>
<el-button @click="dialogAddClose">取 消</el-button>
</div>
</dee-dialog>
</div> </div>
</template> </template>
<script> <script>
...@@ -20,11 +49,57 @@ export default { ...@@ -20,11 +49,57 @@ export default {
}, },
data() { data() {
return { return {
drawer: false,
dialogVisible: false,
evenList: [ evenList: [
{ {
even: 'row-click', even: 'row-click',
name: '行点击事件' name: '行点击事件'
} }
],
setAttrs: {},
productArea: '',
productAreaOptions: [
{
label: '205厂房',
value: '205厂房'
},
{
label: '206厂房',
value: '206厂房'
},
{
label: '203厂房',
value: '203厂房'
},
{
label: '荆门铁鸟',
value: '荆门铁鸟'
},
{
label: '阎良强度所',
value: '阎良强度所'
},
{
label: '阎良试飞院',
value: '阎良试飞院'
},
{
label: '阎良蒲城',
value: '阎良蒲城'
},
{
label: '荆门漳河',
value: '荆门漳河'
},
{
label: '青岛',
value: '青岛'
},
{
label: '宜昌',
value: '宜昌'
}
] ]
} }
}, },
...@@ -37,6 +112,9 @@ export default { ...@@ -37,6 +112,9 @@ export default {
} }
}, },
mounted() { mounted() {
this.$bus.$on('completeEvent', (res) => {
this.drawer = false
})
}, },
methods: { methods: {
onRowClick(data) { onRowClick(data) {
...@@ -44,7 +122,6 @@ export default { ...@@ -44,7 +122,6 @@ export default {
}, },
tableToolHandler(e) { tableToolHandler(e) {
if (e && e.key && e.key.btnValue) { if (e && e.key && e.key.btnValue) {
console.log(e)
let type let type
const { btnValue } = e.key const { btnValue } = e.key
switch (btnValue) { switch (btnValue) {
...@@ -63,13 +140,69 @@ export default { ...@@ -63,13 +140,69 @@ export default {
'确定', '确定',
'取消', '取消',
() => { () => {
if (btnValue === 'deploymentCardCreate') {
this.productArea = ''
this.dialogVisible = true
} else {
this.adjustCardCreate(e, type) this.adjustCardCreate(e, type)
} }
}
) )
} else {
if (btnValue === 'deploymentCardCreate') {
this.dataCheck()
} else { } else {
this.adjustCardCreate(e, type) this.adjustCardCreate(e, type)
} }
} }
}
},
dataCheck() {
if (this.setAttrs.assignCardDetails && this.setAttrs.assignCardDetails.length) {
if (this.setAttrs.assignCardDetails.length === 1) {
this.$set(this.setAttrs, 'modelNo', this.setAttrs.assignCardDetails[0].extMaterial.modelNo.split('-')[0])
}
if (this.setAttrs.assignCardDetails.length > 1) {
const modelNoList = this.setAttrs.assignCardDetails.map(item => {
return item.extMaterial.modelNo.split('-')[0]
})
if (new Set(modelNoList).size !== 1) {
this.$utils.showMessageError('勾选的数据牌号不一致!', 'error')
return false
} else {
this.setAttrs.modelNo = this.setAttrs.assignCardDetails[0].extMaterial.modelNo.split('-')[0]
}
}
this.productArea = ''
this.dialogVisible = true
}
},
selectionChange(val) {
this.setAttrs.assignCardDetails = val
},
handleClose() {
this.drawer = false
},
dialogAddClose() {
this.productArea = ''
this.dialogVisible = false
},
save() {
const params = {
'dxClassName': 'com.yonde.tf.mom.common.vo.schedule.AssignCardVO',
'subTypeName': 'AssignCardLacquer',
'operator': 'ADD',
productArea: this.productArea
}
post(`/AssignCard/recursion`, params).then(res => {
if (res.code === 0) {
this.setAttrs.cardNo = res.items.cardNo
this.setAttrs.id = res.items.id
this.setAttrs.assignCard = res.items
this.dialogVisible = false
this.drawer = true
}
})
}, },
adjustCardCreate(e, type) { adjustCardCreate(e, type) {
let arr = [] let arr = []
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
v-model="popoverVisible" v-model="popoverVisible"
placement="left" placement="left"
width="200" width="200"
trigger="manual" trigger="click"
> >
<div> <div>
<el-input <el-input
...@@ -16,15 +16,21 @@ ...@@ -16,15 +16,21 @@
placeholder="请使用扫码枪录入" placeholder="请使用扫码枪录入"
@change="getQRcodeBar" @change="getQRcodeBar"
/> />
<br>
<el-input
ref="scanCode"
v-model="amount"
placeholder="请填写数量"
@change="getQRcodeBar"
/>
</div> </div>
<span <span
slot="reference" slot="reference"
class="qiang" class="qiang"
title="扫码枪录入" title="扫码枪录入"
@click="codeScanBar"
/> />
</el-popover> </el-popover>
<scan class="qrcode" title="扫码录入" @getQrCode="getQRcode"> <span class="scan" /></scan> <scan class="qrcode" title="扫码录入" @getQrCode="getScanCode"> <span class="scan" /></scan>
</div> </div>
</div> </div>
<!-- 表格 --> <!-- 表格 -->
...@@ -69,6 +75,12 @@ ...@@ -69,6 +75,12 @@
label="记实时间" label="记实时间"
:min-width="180" :min-width="180"
/> />
<el-table-column
prop="amount"
align="center"
label="数量"
:min-width="180"
/>
<el-table-column <el-table-column
prop="dxProcessMaterial.unit.unitCode" prop="dxProcessMaterial.unit.unitCode"
align="center" align="center"
...@@ -97,6 +109,23 @@ ...@@ -97,6 +109,23 @@
@current-change="setPage($event, true)" @current-change="setPage($event, true)"
/> />
</div> </div>
<dee-dialog
:dialog-visible="dialogVisible"
width="20%"
title="数量"
:append-to-body="true"
@handleClose="handleClose"
>
<el-input
ref="scanCode"
v-model="amount"
placeholder="请填写数量"
@change="getQRcodeBar"
/>
<div slot="footer">
<el-button type="primary" :disabled="!amount" @click="getQRcode">确 定</el-button>
</div>
</dee-dialog>
</section> </section>
</template> </template>
...@@ -112,6 +141,7 @@ export default { ...@@ -112,6 +141,7 @@ export default {
return { return {
// 加载中 // 加载中
loading: false, loading: false,
dialogVisible: false,
// 分页 // 分页
tablePagination: { tablePagination: {
currentPage: 1, currentPage: 1,
...@@ -123,7 +153,8 @@ export default { ...@@ -123,7 +153,8 @@ export default {
tableData: [], tableData: [],
tableId: null, tableId: null,
popoverVisible: false, popoverVisible: false,
scanId: null scanId: null,
amount: ''
} }
}, },
created() {}, created() {},
...@@ -185,11 +216,14 @@ export default { ...@@ -185,11 +216,14 @@ export default {
* **扫描胶漆合格证二维码记实** * **扫描胶漆合格证二维码记实**
*/ */
getQRcode(info) { getQRcode(info) {
this.popoverVisible = false
this.dialogVisible = false
// 发送请求 // 发送请求
post( post(
'/ExtScanCodeRecord/scanCode', '/ExtScanCodeRecord/scanCode',
{ {
allocateNo: info, // 记录卡号 allocateNo: this.scanId, // 记录卡号
amount: this.amount,
extSupportingItemId: this.tableId extSupportingItemId: this.tableId
} }
) )
...@@ -227,6 +261,7 @@ export default { ...@@ -227,6 +261,7 @@ export default {
operator: 'REMOVE' operator: 'REMOVE'
} }
// 发送请求 // 发送请求
// `ExtScanCodeRecord/removeScanCode?id=${row.extScanCodeRecords[0].id}&reqName=${row.extMaterial.resType2.typeName}`
post('/ExtScanCodeRecord/recursion', params) post('/ExtScanCodeRecord/recursion', params)
.then((res) => { .then((res) => {
if (res.message.includes('成功')) { if (res.message.includes('成功')) {
...@@ -258,9 +293,19 @@ export default { ...@@ -258,9 +293,19 @@ export default {
* 扫码枪录入 * 扫码枪录入
*/ */
getQRcodeBar($event) { getQRcodeBar($event) {
this.popoverVisible = false if (this.amount && this.scanId) {
this.getQRcode($event) this.getQRcode($event)
this.scanId = null this.scanId = null
this.amount = ''
}
},
getScanCode(scanId) {
this.scanId = scanId
this.dialogVisible = true
},
handleClose() {
this.dialogVisible = false
this.amount = ''
} }
} }
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<p class="lacclaims-header-title"> <p class="lacclaims-header-title">
<span class="title">胶漆材料</span> <span class="title">胶漆材料</span>
<span class="button"> <span class="button">
<span>提示:双击可编辑时间</span> <span>提示:双击可编辑时间/规格</span>
<el-button <el-button
size="mini" size="mini"
:disabled=" :disabled="
...@@ -104,19 +104,12 @@ ...@@ -104,19 +104,12 @@
placeholder="选择日期" placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
@focus="tableInputFocus" @focus="tableInputFocus"
@change="deeTableBlur(scope.row, false)" @change="deeTableBlur(scope.row, 'needTime')"
/> />
<!-- <el-input
v-if="scope.row.needTimeSelect"
v-model="scope.row.needTime"
@focus="tableInputFocus"
@blur="deeTableBlur(scope.row, false)"
/> -->
<span v-else>{{ scope.row[scope.column.property] }}</span> <span v-else>{{ scope.row[scope.column.property] }}</span>
<i <i v-if="scope.row.needTimeLoading" class="el-icon-loading" />
v-if="scope.row.needTimeLoading" </template>
class="el-icon-loading" </el-table-column>
/> </template></el-table-column>
<el-table-column <el-table-column
prop="applyStatus" prop="applyStatus"
align="center" align="center"
...@@ -125,6 +118,27 @@ ...@@ -125,6 +118,27 @@
sortable sortable
:formatter="applyStatusFormatter" :formatter="applyStatusFormatter"
/> />
<el-table-column
prop="spec"
align="center"
label="规格"
:width="120"
>
<template slot="header">
<span>规格 </span>
<i class="el-icon-edit-outline" />
</template>
<template slot-scope="scope">
<el-input
v-if="scope.row.needSpecSelect"
v-model="scope.row.spec"
@focus="tableInputFocus"
@change="deeTableBlur(scope.row, 'spec')"
/>
<span v-else>{{ scope.row[scope.column.property] }}</span>
<i v-if="scope.row.needSpecLoading" class="el-icon-loading" />
</template>
</el-table-column>
<el-table-column <el-table-column
prop="cardNo" prop="cardNo"
align="center" align="center"
...@@ -169,6 +183,7 @@ export default { ...@@ -169,6 +183,7 @@ export default {
tableData: [], tableData: [],
timer: null, timer: null,
needTimeRow: null, needTimeRow: null,
needSpecRow: null,
rowData: {}, rowData: {},
defultRow: null defultRow: null
} }
...@@ -231,7 +246,9 @@ export default { ...@@ -231,7 +246,9 @@ export default {
return { return {
...p, ...p,
needTimeLoading: false, needTimeLoading: false,
needTimeSelect: false needTimeSelect: false,
needSpecLoading: false,
needSpecSelect: false
} }
}) })
this.tablePagination.total = res.items.totalElements this.tablePagination.total = res.items.totalElements
...@@ -253,6 +270,9 @@ export default { ...@@ -253,6 +270,9 @@ export default {
if (column.property === 'needTime' && row.needTimeSelect) { if (column.property === 'needTime' && row.needTimeSelect) {
return 'highlight' return 'highlight'
} }
if (column.property === 'spec' && row.needSpecSelect) {
return 'highlight'
}
}, },
applyStatusFormatter(row, column, cellValue, index) { applyStatusFormatter(row, column, cellValue, index) {
var label = '' var label = ''
...@@ -343,22 +363,37 @@ export default { ...@@ -343,22 +363,37 @@ export default {
.catch((err) => console.error(err)) .catch((err) => console.error(err))
.finally(() => {}) .finally(() => {})
}, },
deeTableBlur(row) { deeTableBlur(row, key) {
var that = this var that = this
const param = { const param = {
id: row.id, id: row.id,
operator: 'MODIFY', operator: 'MODIFY',
needTime: row.needTime needTime: row.needTime,
spec: row.spec
}
if (key === 'spec') {
this.needSpecSelect = false
row.needSpecLoading = true
if (this.needSpecRow === row.spec) {
row.needSpecLoading = false
return
} }
} else {
row.needTimeSelect = false row.needTimeSelect = false
row.needTimeLoading = true row.needTimeLoading = true
if (this.needTimeRow === row.needTime) { if (this.needTimeRow === row.needTime) {
row.needTimeLoading = false row.needTimeLoading = false
return return
} }
}
post('/ExtSupportingItem/recursion', param) post('/ExtSupportingItem/recursion', param)
.then((res) => { .then((res) => {
if (res.message.includes('成功')) { if (res.message.includes('成功')) {
if (key === 'spec') {
row.needSpecSelect = false
} else {
row.needTimeSelect = false
}
that.$message({ that.$message({
showClose: true, showClose: true,
message: '保存成功', message: '保存成功',
...@@ -375,6 +410,7 @@ export default { ...@@ -375,6 +410,7 @@ export default {
.catch((err) => console.error(err)) .catch((err) => console.error(err))
.finally(() => { .finally(() => {
row.needTimeLoading = false row.needTimeLoading = false
row.needSpecLoading = false
}) })
}, },
tableInputFocus() { tableInputFocus() {
...@@ -387,6 +423,11 @@ export default { ...@@ -387,6 +423,11 @@ export default {
if (column.property === 'needTime') { if (column.property === 'needTime') {
row.needTimeSelect = true row.needTimeSelect = true
this.needTimeRow = row.needTime this.needTimeRow = row.needTime
} if (column.property === 'spec') {
if (row.applyStatus === 'applied') {
row.needSpecSelect = true
this.needSpecRow = row.spec
}
} else { } else {
return return
} }
......
...@@ -123,7 +123,7 @@ export default { ...@@ -123,7 +123,7 @@ export default {
class: 'link-style', class: 'link-style',
on: { on: {
click: () => { click: () => {
getInstancePbo(params.processInstanceId).then(res => { getInstancePbo(params.processInstanceId || params.id).then(res => {
const pbo = res.items const pbo = res.items
if (pbo) { if (pbo) {
let modelName = pbo.dxClassname.split('.').splice(-1)[0] let modelName = pbo.dxClassname.split('.').splice(-1)[0]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment