han\hanst 6 days ago
parent
commit
7293f89a4c
  1. 64
      src/views/modules/sampleTracking/projectProofTracking.vue

64
src/views/modules/sampleTracking/projectProofTracking.vue

@ -66,6 +66,11 @@
<el-button type="success" plain :loading="syncProofLoading" @click="syncProofToNpi()">同步打样到NPI</el-button> <el-button type="success" plain :loading="syncProofLoading" @click="syncProofToNpi()">同步打样到NPI</el-button>
<el-button type="info" v-if="isAuth('833001005:set')" plain @click="openBuProcessConfigDialog">事业部进度设置</el-button> <el-button type="info" v-if="isAuth('833001005:set')" plain @click="openBuProcessConfigDialog">事业部进度设置</el-button>
<el-button type="info" v-if="isAuth('833001005:set2')" plain @click="openDefaultProcessConfigDialog">默认进度设置</el-button> <el-button type="info" v-if="isAuth('833001005:set2')" plain @click="openDefaultProcessConfigDialog">默认进度设置</el-button>
<el-tooltip style="margin-top: 2px;margin-left: 10px"
content="已完成后,双击日期选择框可回退为未完成"
placement="top">
<i class="el-icon-question default-process-tip-icon"></i>
</el-tooltip>
</el-row> </el-row>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -118,6 +123,9 @@
<span v-else-if="item.columnProp === 'projectManager'"> <span v-else-if="item.columnProp === 'projectManager'">
{{ getTrackingRoleDisplayValue(scope.row, 'projectManagerName', 'projectManager') }} {{ getTrackingRoleDisplayValue(scope.row, 'projectManagerName', 'projectManager') }}
</span> </span>
<span v-else-if="item.columnProp === 'pic'">
{{ getTrackingRoleDisplayValue(scope.row, 'projectOwnerName', 'pic') }}
</span>
<span v-else>{{ getTrackingColumnDisplayValue(scope.row, item.columnProp) }}</span> <span v-else>{{ getTrackingColumnDisplayValue(scope.row, item.columnProp) }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -159,15 +167,17 @@
placeholder="" placeholder=""
style="width: 122px" style="width: 122px"
@change="handleProcessDateChange(scope.row, item, $event)" @change="handleProcessDateChange(scope.row, item, $event)"
@dblclick.native.stop="handleProcessDateDoubleClick(scope.row, item)"
/> />
<el-button <el-button
v-if="!isProcessStatusComplete(scope.row, item)"
class="process-complete-btn" class="process-complete-btn"
type="success" type="success"
size="mini" size="mini"
plain v-show="!isProcessStatusComplete(scope.row, item)"
:disabled="isProcessStatusComplete(scope.row, item)"
plain
title="标记为已完成"
@click.stop="markProcessComplete(scope.row, item)" @click.stop="markProcessComplete(scope.row, item)"
></el-button>
></el-button>
</div> </div>
</div> </div>
<div v-else class="process-cell process-cell--masked"></div> <div v-else class="process-cell process-cell--masked"></div>
@ -1299,6 +1309,7 @@ export default {
proofingStatus: '' proofingStatus: ''
}, },
trackingColumnList: cloneDefaultTrackingColumns(), trackingColumnList: cloneDefaultTrackingColumns(),
hasUserTrackingColumnConfig: false,
processColumns: cloneDefaultProcessColumns(), processColumns: cloneDefaultProcessColumns(),
processCodeLabelMap: buildProcessCodeLabelMapByRows(cloneDefaultProcessColumns()), processCodeLabelMap: buildProcessCodeLabelMapByRows(cloneDefaultProcessColumns()),
buProcessConfigDialogVisible: false, buProcessConfigDialogVisible: false,
@ -1483,9 +1494,11 @@ export default {
}, },
computed: { computed: {
visibleTrackingColumns () { visibleTrackingColumns () {
const sourceColumns = Array.isArray(this.trackingColumnList) && this.trackingColumnList.length > 0
const sourceColumns = this.hasUserTrackingColumnConfig
? (Array.isArray(this.trackingColumnList) ? this.trackingColumnList : [])
: ((Array.isArray(this.trackingColumnList) && this.trackingColumnList.length > 0)
? this.trackingColumnList ? this.trackingColumnList
: this.buildDefaultTrackingColumns()
: this.buildDefaultTrackingColumns())
return sourceColumns.filter(item => this.isTrackingColumnVisible(item)) return sourceColumns.filter(item => this.isTrackingColumnVisible(item))
}, },
visibleProcessColumns () { visibleProcessColumns () {
@ -1571,7 +1584,8 @@ export default {
normalizeTrackingColumnItem (item, fallbackItem) { normalizeTrackingColumnItem (item, fallbackItem) {
const defaultItem = fallbackItem || {} const defaultItem = fallbackItem || {}
const mergedItem = Object.assign({}, defaultItem, item || {}) const mergedItem = Object.assign({}, defaultItem, item || {})
const columnProp = mergedItem.columnProp == null ? '' : String(mergedItem.columnProp).trim()
const rawColumnProp = mergedItem.columnProp == null ? '' : String(mergedItem.columnProp).trim()
const columnProp = rawColumnProp.toLowerCase() === 'pic' ? 'pic' : rawColumnProp
const normalizedLabel = mergedItem.columnLabel == null ? '' : String(mergedItem.columnLabel).trim() const normalizedLabel = mergedItem.columnLabel == null ? '' : String(mergedItem.columnLabel).trim()
return Object.assign({}, mergedItem, { return Object.assign({}, mergedItem, {
columnProp: columnProp, columnProp: columnProp,
@ -1585,7 +1599,7 @@ export default {
columnHidden: this.normalizeTrackingColumnBoolean(mergedItem.columnHidden, false) columnHidden: this.normalizeTrackingColumnBoolean(mergedItem.columnHidden, false)
}) })
}, },
normalizeTrackingColumns (rows) {
normalizeTrackingColumns (rows, appendDefaultColumns) {
const defaultColumns = this.buildDefaultTrackingColumns() const defaultColumns = this.buildDefaultTrackingColumns()
const defaultColumnMap = {} const defaultColumnMap = {}
defaultColumns.forEach(item => { defaultColumns.forEach(item => {
@ -1603,6 +1617,9 @@ export default {
mergedRows.push(this.normalizeTrackingColumnItem(item, defaultColumnMap[columnProp])) mergedRows.push(this.normalizeTrackingColumnItem(item, defaultColumnMap[columnProp]))
}) })
} }
if (appendDefaultColumns !== true) {
return mergedRows
}
// //
defaultColumns.forEach((defaultItem, defaultIndex) => { defaultColumns.forEach((defaultItem, defaultIndex) => {
if (usedColumnPropMap[defaultItem.columnProp]) { if (usedColumnPropMap[defaultItem.columnProp]) {
@ -1640,12 +1657,14 @@ export default {
} }
return getTableDefaultListLanguage(queryTable).then(({ data }) => { return getTableDefaultListLanguage(queryTable).then(({ data }) => {
const rows = data && Array.isArray(data.rows) ? data.rows : [] const rows = data && Array.isArray(data.rows) ? data.rows : []
this.hasUserTrackingColumnConfig = false
this.trackingColumnList = rows.length > 0 this.trackingColumnList = rows.length > 0
? this.normalizeTrackingColumns(rows)
? this.normalizeTrackingColumns(rows, true)
: this.buildDefaultTrackingColumns() : this.buildDefaultTrackingColumns()
this.refreshTrackingTableLayout() this.refreshTrackingTableLayout()
return this.trackingColumnList return this.trackingColumnList
}).catch(() => { }).catch(() => {
this.hasUserTrackingColumnConfig = false
this.trackingColumnList = this.buildDefaultTrackingColumns() this.trackingColumnList = this.buildDefaultTrackingColumns()
this.refreshTrackingTableLayout() this.refreshTrackingTableLayout()
return this.trackingColumnList return this.trackingColumnList
@ -1663,12 +1682,14 @@ export default {
return getTableUserListLanguage(queryTableUser).then(({ data }) => { return getTableUserListLanguage(queryTableUser).then(({ data }) => {
const rows = data && Array.isArray(data.rows) ? data.rows : [] const rows = data && Array.isArray(data.rows) ? data.rows : []
if (rows.length > 0) { if (rows.length > 0) {
this.trackingColumnList = this.normalizeTrackingColumns(rows)
this.hasUserTrackingColumnConfig = true
this.trackingColumnList = this.normalizeTrackingColumns(rows, false)
this.refreshTrackingTableLayout() this.refreshTrackingTableLayout()
return this.trackingColumnList return this.trackingColumnList
} }
return this.loadTrackingDefaultColumns(tableId) return this.loadTrackingDefaultColumns(tableId)
}).catch(() => { }).catch(() => {
this.hasUserTrackingColumnConfig = false
this.trackingColumnList = this.buildDefaultTrackingColumns() this.trackingColumnList = this.buildDefaultTrackingColumns()
this.refreshTrackingTableLayout() this.refreshTrackingTableLayout()
return this.trackingColumnList return this.trackingColumnList
@ -4484,6 +4505,31 @@ export default {
remark: '表格一键完成' remark: '表格一键完成'
}, false, '工序已标记为完成') }, false, '工序已标记为完成')
}, },
handleProcessDateDoubleClick (row, processCol) {
if (!row || !processCol || !this.isProcessStatusComplete(row, processCol)) {
return
}
// 退
this.rollbackProcessComplete(row, processCol)
},
rollbackProcessComplete (row, processCol) {
if (!row || !processCol || !this.isProcessStatusComplete(row, processCol)) {
return
}
const currentActualDate = this.formatDate(row[processCol.actualField])
this.$confirm('确定回退该工序状态为“未完成”吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// 退退
this.updateProcessFromTable(row, processCol, {
status: '未完成',
actualDate: currentActualDate,
remark: '表格一键回退为未完成'
}, false, '工序状态已回退为未完成')
}).catch(() => {})
},
updateProcessFromTable (row, processCol, processData, silentSuccess, successMsg) { updateProcessFromTable (row, processCol, processData, silentSuccess, successMsg) {
if (!row || !processCol || !row.trackingId) { if (!row || !processCol || !row.trackingId) {
this.$message.error('工序参数缺失') this.$message.error('工序参数缺失')

Loading…
Cancel
Save