Commit 2a0cddf3 by qinjianhui

feat: 工单管理

parent 2b69bb65
{ {
"tabWidth": 2, "tabWidth": 2,
"singleQuote": true, "singleQuote": true,
"printWidth": 80, "printWidth": 180,
"semi": false, "semi": false,
"trailingComma": "none", "trailingComma": "none",
"bracketSpacing": true, "bracketSpacing": true,
......
...@@ -2012,6 +2012,49 @@ ...@@ -2012,6 +2012,49 @@
"webpack-merge": "^5.7.3", "webpack-merge": "^5.7.3",
"webpack-virtual-modules": "^0.4.2", "webpack-virtual-modules": "^0.4.2",
"whatwg-fetch": "^3.6.2" "whatwg-fetch": "^3.6.2"
},
"dependencies": {
"@vue/vue-loader-v15": {
"version": "npm:vue-loader@15.10.1",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.1.tgz",
"integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==",
"dev": true,
"requires": {
"@vue/component-compiler-utils": "^3.1.0",
"hash-sum": "^1.0.2",
"loader-utils": "^1.1.0",
"vue-hot-reload-api": "^2.3.0",
"vue-style-loader": "^4.1.0"
},
"dependencies": {
"hash-sum": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz",
"integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
"dev": true
}
}
},
"json5": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
"version": "1.4.2",
"resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz",
"integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^1.0.1"
}
}
} }
}, },
"@vue/cli-shared-utils": { "@vue/cli-shared-utils": {
...@@ -2172,47 +2215,6 @@ ...@@ -2172,47 +2215,6 @@
"eslint-import-resolver-webpack": "^0.13.1" "eslint-import-resolver-webpack": "^0.13.1"
} }
}, },
"@vue/vue-loader-v15": {
"version": "npm:vue-loader@15.10.0",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.0.tgz",
"integrity": "sha512-VU6tuO8eKajrFeBzMssFUP9SvakEeeSi1BxdTH5o3+1yUyrldp8IERkSdXlMI2t4kxF2sqYUDsQY+WJBxzBmZg==",
"dev": true,
"requires": {
"@vue/component-compiler-utils": "^3.1.0",
"hash-sum": "^1.0.2",
"loader-utils": "^1.1.0",
"vue-hot-reload-api": "^2.3.0",
"vue-style-loader": "^4.1.0"
},
"dependencies": {
"hash-sum": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz",
"integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
"dev": true
},
"json5": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
"version": "1.4.0",
"resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.0.tgz",
"integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^1.0.1"
}
}
}
},
"@vue/web-component-wrapper": { "@vue/web-component-wrapper": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz",
...@@ -2670,7 +2672,7 @@ ...@@ -2670,7 +2672,7 @@
}, },
"async-validator": { "async-validator": {
"version": "1.8.5", "version": "1.8.5",
"resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-1.8.5.tgz", "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
"integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
"requires": { "requires": {
"babel-runtime": "6.x" "babel-runtime": "6.x"
...@@ -2713,7 +2715,7 @@ ...@@ -2713,7 +2715,7 @@
}, },
"babel-helper-vue-jsx-merge-props": { "babel-helper-vue-jsx-merge-props": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
"integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
}, },
"babel-loader": { "babel-loader": {
...@@ -2769,7 +2771,7 @@ ...@@ -2769,7 +2771,7 @@
}, },
"babel-runtime": { "babel-runtime": {
"version": "6.26.0", "version": "6.26.0",
"resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
"requires": { "requires": {
"core-js": "^2.4.0", "core-js": "^2.4.0",
...@@ -2778,12 +2780,12 @@ ...@@ -2778,12 +2780,12 @@
"dependencies": { "dependencies": {
"core-js": { "core-js": {
"version": "2.6.12", "version": "2.6.12",
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
}, },
"regenerator-runtime": { "regenerator-runtime": {
"version": "0.11.1", "version": "0.11.1",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
} }
} }
...@@ -3923,7 +3925,7 @@ ...@@ -3923,7 +3925,7 @@
}, },
"element-ui": { "element-ui": {
"version": "2.15.10", "version": "2.15.10",
"resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.10.tgz", "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.10.tgz",
"integrity": "sha512-jmD++mU2wKXbisvx4fxOl2mHaU+HWHTAq/3Wf8x9Bwyu4GdDZPLABb+CGi3DWN6fPqdgRcd74aX39DO+YHObLw==", "integrity": "sha512-jmD++mU2wKXbisvx4fxOl2mHaU+HWHTAq/3Wf8x9Bwyu4GdDZPLABb+CGi3DWN6fPqdgRcd74aX39DO+YHObLw==",
"requires": { "requires": {
"async-validator": "~1.8.1", "async-validator": "~1.8.1",
...@@ -6661,7 +6663,7 @@ ...@@ -6661,7 +6663,7 @@
}, },
"normalize-wheel": { "normalize-wheel": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz", "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
"integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
}, },
"npm-run-path": { "npm-run-path": {
...@@ -7722,7 +7724,7 @@ ...@@ -7722,7 +7724,7 @@
}, },
"resize-observer-polyfill": { "resize-observer-polyfill": {
"version": "1.5.1", "version": "1.5.1",
"resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
}, },
"resolve": { "resolve": {
...@@ -8544,7 +8546,7 @@ ...@@ -8544,7 +8546,7 @@
}, },
"throttle-debounce": { "throttle-debounce": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz", "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
"integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==" "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
}, },
"thunky": { "thunky": {
......
import axios from './axios'
export function getOrderTree() {
return axios.get('platform/platformWorkOrder/saas/findStateGroupList')
}
...@@ -66,6 +66,10 @@ ...@@ -66,6 +66,10 @@
padding-top: 5px; padding-top: 5px;
padding-bottom: 5px; padding-bottom: 5px;
} }
.el-form-item--mini.el-form-item {
margin-bottom: 10px;
}
.icon-view{ .icon-view{
font-size: 18px; font-size: 18px;
cursor: pointer; cursor: pointer;
...@@ -74,3 +78,52 @@ ...@@ -74,3 +78,52 @@
.icon-view + .icon-view{ .icon-view + .icon-view{
margin-left: 10px; margin-left: 10px;
} }
.icon-view {
width: 23px;
height: 23px;
font-size: 16px;
line-height: 23px;
border-radius: 4px;
text-align: center;
display: inline-block;
color: #fff;
cursor: pointer;
vertical-align: middle;
}
.icon-view:not(:first-child) {
margin-left: 5px;
}
.icon-edit-view {
background-color: #ff9900;
}
.icon-edit-view:hover {
background-color: #ffd36a;
}
.icon-del-view {
background-color: #f56c6c;
}
.icon-del-view:hover {
background-color: #f78989;
}
.icon-tools-view {
background-color: #8cc34b;
}
.icon-tools-view:hover {
background-color: #85ce61;
}
.icon-primary-view {
background-color: #4168FF;
}
.icon-primary-view:hover {
background-color: #66b1ff;
}
...@@ -5,9 +5,11 @@ import store from './store' ...@@ -5,9 +5,11 @@ import store from './store'
import element from '@/common/components/element-ui.js' import element from '@/common/components/element-ui.js'
import vxeTable from '@/common/components/vxeTable.js' import vxeTable from '@/common/components/vxeTable.js'
import './common/style/index.scss' import './common/style/index.scss'
import Directives from './utils/directives'
// import { getToken } from '@/utils/auth' // import { getToken } from '@/utils/auth'
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.use(Directives)
Vue.use(element) Vue.use(element)
Vue.use(vxeTable) Vue.use(vxeTable)
......
/**
* @type {import("vue/types/options").DirectiveOptions}
*/
const enterSubmit = {
inserted: (el, binding) => {
el._enterSubmitFn = (e) => {
if (e.key !== 'Enter') return
if (typeof binding.value === 'function') {
setTimeout(() => {
binding.value()
}, 100)
}
}
el.addEventListener('keydown', el._enterSubmitFn, true)
},
unbind: (el) => {
el.removeEventListener(
'keydown',
el._enterSubmitFn,
true,
)
},
}
export default enterSubmit
import enterSubmit from './enter-submit'
export default {
install(Vue) {
Vue.directive('enter-submit', enterSubmit)
},
}
...@@ -12,8 +12,10 @@ ...@@ -12,8 +12,10 @@
:data="treeData" :data="treeData"
:props="defaultProps" :props="defaultProps"
highlight-current highlight-current
:node-key="'continentCode'" :node-key="'statusCode'"
current-node-key="" :expand-on-click-node="false"
current-node-key="PRE_HANDLING"
default-expand-all
@node-click="handleNodeClick" @node-click="handleNodeClick"
> >
<span <span
...@@ -103,16 +105,53 @@ ...@@ -103,16 +105,53 @@
查询 查询
</el-button> </el-button>
</el-form-item> </el-form-item>
<!-- <el-form-item label> <el-form-item v-if="statusCode === 'PRE_HANDLING'">
<el-button type="primary" size="mini"
>确认</el-button
>
</el-form-item>
<el-form-item v-if="statusCode === 'TO_BE_CONFIRMED'">
<el-button type="success" size="mini"
>开始</el-button
>
</el-form-item>
<el-form-item v-if="statusCode === 'IN_PROGRESS'">
<el-button type="success" size="mini"
>关闭</el-button
>
</el-form-item>
<el-form-item v-if="statusCode === 'TO_BE_ASSIGN'">
<el-button type="success" size="mini" @click="showAssign">指派给</el-button>
</el-form-item>
<el-form-item v-if="statusCode === 'PRE_HANDLING'">
<el-button type="primary" size="mini"
>评价</el-button
>
</el-form-item>
<!-- <el-form-item>
<el-button type="danger" size="mini"
>作废</el-button
>
</el-form-item> -->
<!-- <el-form-item>
<el-button type="danger" size="mini"
>删除</el-button
>
</el-form-item> -->
<el-form-item v-if="statusCode !== 'PRE_HANDLING'">
<el-button <el-button
@click="showEdit()" type="warning"
type="success"
size="mini" size="mini"
@click="rejectTask"
>驳回</el-button
>
</el-form-item>
<!-- <el-form-item>
<el-button type="primary" size="mini"
>关闭</el-button
> >
新增
</el-button>
</el-form-item> --> </el-form-item> -->
<el-form-item label v-if="statusCode === '8'"> <el-form-item label v-if="statusCode === 'CLOSED'">
<el-button <el-button
@click="archive()" @click="archive()"
type="success" type="success"
...@@ -122,10 +161,11 @@ ...@@ -122,10 +161,11 @@
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="table-wrap"> <div class="table-wrap" v-loading="loading">
<table-view <table-view
:tableColumns="tableColumns" :tableColumns="tableColumns"
:sourceData="sourceData" :sourceData="sourceData"
selection
:selectionChange="selectionChange" :selectionChange="selectionChange"
></table-view> ></table-view>
</div> </div>
...@@ -195,9 +235,7 @@ ...@@ -195,9 +235,7 @@
style="padding: 5px; overflow: auto" style="padding: 5px; overflow: auto"
v-html="detail.taskContent" v-html="detail.taskContent"
@click="fullScreenDisplay" @click="fullScreenDisplay"
> ></div>
这里有一段描述
</div>
<div style="margin-top: 10px"> <div style="margin-top: 10px">
<div> <div>
<el-input <el-input
...@@ -467,6 +505,7 @@ ...@@ -467,6 +505,7 @@
width="300px" width="300px"
> >
<el-cascader <el-cascader
style="width: 100%"
size="small" size="small"
v-model="taskLeader" v-model="taskLeader"
:props="{ emitPath: false, multiple: true }" :props="{ emitPath: false, multiple: true }"
...@@ -474,10 +513,15 @@ ...@@ -474,10 +513,15 @@
:show-all-levels="false" :show-all-levels="false"
></el-cascader> ></el-cascader>
<span slot="footer"> <span slot="footer">
<el-button @click="assignVisible = false" <el-button
size="mini"
@click="assignVisible = false"
>取消</el-button >取消</el-button
> >
<el-button type="primary" @click="submitAssign" <el-button
size="mini"
type="primary"
@click="submitAssign"
>确定</el-button >确定</el-button
> >
</span> </span>
...@@ -486,16 +530,15 @@ ...@@ -486,16 +530,15 @@
</template> </template>
<script> <script>
import axios from '../../common/api/axios' import tableView from '@/common/components/base/tableView.vue'
import { emptyArray, getIds } from '../../utils/commonUtil' import ChooseTimePeriod from '../../components/base/chooseTimePeriod.vue'
import pagination from '../../mixins/pagination' import pagination from '../../mixins/pagination'
import Edit from './edit.vue' import Edit from './edit.vue'
import axios from '../../common/api/axios'
import { getOrderTree } from '@/common/api/order'
import { emptyArray, getIds } from '../../utils/commonUtil'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import ChooseTimePeriod from '../../components/base/chooseTimePeriod.vue'
/* 工单管理 */
import tableView from '@/common/components/base/tableView.vue'
export default { export default {
name: 'task_center', name: 'task_center',
mixins: [pagination], mixins: [pagination],
...@@ -512,11 +555,13 @@ export default { ...@@ -512,11 +555,13 @@ export default {
} }
return { return {
loading: false,
pickerOption: { pickerOption: {
disabledDate: (time) => { disabledDate: (time) => {
return time.getTime() < Date.now() - 8.64e7 return time.getTime() < Date.now() - 8.64e7
}, },
}, },
textarea: '',
centerPageOptions: { centerPageOptions: {
pageSize: 100, pageSize: 100,
currentPage: 1, currentPage: 1,
...@@ -604,59 +649,15 @@ export default { ...@@ -604,59 +649,15 @@ export default {
} }
}, },
mounted() { mounted() {
const arr = [ this.getOrderTree()
{
statusCode: 'all',
statusName: '全部',
quantity: 35,
children: null,
},
{
statusCode: 'preprocessing',
statusName: '预处理',
quantity: 27,
children: null,
},
{
statusCode: 'to_be_dispatched',
statusName: '待分派',
quantity: 3,
children: null,
},
{
statusCode: 'to_be_confirmed',
statusName: '待确认',
quantity: 0,
children: null,
},
{
statusCode: 'processing',
statusName: '处理中',
quantity: 0,
children: null,
},
{
statusCode: 'pending_feedback',
statusName: '待反馈',
quantity: 0,
children: null,
},
{
statusCode: 'closed',
statusName: '已关闭',
quantity: 0,
children: null,
},
]
this.treeData = arr
this.getlist() this.getlist()
}, },
computed: { computed: {
...mapState(['deptStaff']), ...mapState(['deptStaff']),
tableColumns() { tableColumns() {
const employeeId = this.employeeId // const employeeId = this.employeeId
return [ return [
{ label: '工单编号', key: 'taskNumber', width: 90 }, { label: '工单编号', key: 'orderNo', width: 90 },
{ {
label: '工单模块', label: '工单模块',
key: 'taskModuleName', key: 'taskModuleName',
...@@ -665,53 +666,41 @@ export default { ...@@ -665,53 +666,41 @@ export default {
}, },
{ {
label: '工单类型', label: '工单类型',
key: 'type', key: 'orderTypeTxt',
width: 60, width: 80,
render: (item) => item.taskType?.desc,
}, },
{ {
label: '工单标题', label: '工单标题',
key: 'taskTitle', key: 'title',
width: 120, minWidth: 120,
align: 'left', align: 'left',
}, },
{ {
label: '负责人', label: '负责人',
key: 'taskLeaderName', key: 'taskLeaderName',
width: 65, width: 80,
}, },
{ {
label: '执行人', label: '执行人',
key: 'taskCompleteUserName', key: 'taskCompleteUserName',
width: 65, width: 80,
}, },
{ {
label: '验收人', label: '验收人',
key: 'taskAcceptanceUserName', key: 'taskAcceptanceUserName',
width: 65, width: 80,
}, },
{ label: '抄送人', key: 'ccName', width: 80 }, { label: '抄送人', key: 'ccName', width: 80 },
{ {
label: '创建人', label: '创建人',
key: 'taskCreatorName', key: 'taskCreatorName',
width: 65, width: 80,
}, },
{ {
label: '工单状态', label: '工单状态',
key: 'taskStatus', key: 'orderStatusTxt',
width: 60, width: 80,
render: (item) => (
<span
style={{
color: this.getStatusColor(
item?.taskStatus?.name,
),
}}
>
{item?.taskStatus?.desc}
</span>
),
}, },
{ {
...@@ -722,7 +711,7 @@ export default { ...@@ -722,7 +711,7 @@ export default {
{ {
label: '操作', label: '操作',
fixed: 'right', fixed: 'right',
width: 135, width: 100,
align: 'left', align: 'left',
render: (item) => ( render: (item) => (
<span> <span>
...@@ -735,229 +724,7 @@ export default { ...@@ -735,229 +724,7 @@ export default {
onClick={() => this.showDetail(item)} onClick={() => this.showDetail(item)}
></i> ></i>
</span> </span>
{this.statusCode !== '-1' && {
employeeId === item.taskCreator &&
item?.taskStatus?.name ===
'NOT_YET_ASSIGNED' &&
item.reasonForReject && (
<span
title="作废"
class="icon-view icon-del-view"
style="text-align:center;"
onClick={() => this.invalid(item)}
>
<svg
t="1635313137975"
style="margin-left:3px;margin-top:3px"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="4954"
width="18"
height="18"
>
<path
d="M526.5 385.2c-17.6 0-32-14.3-32-31.9L493.9 63c0-12.8 7.6-24.4 19.4-29.5 11.8-5.1 25.4-2.6 34.7 6.2l305 290.2c9.5 9 12.5 22.9 7.7 35.1-4.9 12.2-16.6 20.1-29.7 20.1l-304.5 0.1z m31.6-247.6l0.4 183.6 192.5-0.1-192.9-183.5z"
fill="#ffffff"
p-id="4955"
></path>
<path
d="M799.2 353.9v469.3c0 27.9-11 54.2-30.9 74.1s-46.2 30.9-74.1 30.9H200.3c-27.9 0-54.2-11-74.1-30.9s-30.9-46.2-30.9-74.1V200.3c0-27.9 11-54.2 30.9-74.1 19.9-19.9 46.2-30.9 74.1-30.9h322.1v-64H200.3c-93.2 0-169 75.8-169 169v622.9c0 93.2 75.8 169 169 169h493.9c93.2 0 169-75.8 169-169V353.9h-64z"
fill="#ffffff"
p-id="4956"
></path>
<path
d="M624 497.1L314.9 806.2c-12.6 12.6-33.3 12.6-46 0-12.6-12.6-12.6-33.3 0-46L578 451.1c12.6-12.6 33.3-12.6 46 0 12.7 12.7 12.7 33.3 0 46z"
fill="#ffffff"
p-id="4957"
></path>
<path
d="M267 490.2l317 317c12.6 12.6 33.3 12.6 46 0 12.6-12.6 12.6-33.3 0-46l-317-317c-12.6-12.6-33.3-12.6-46 0-12.6 12.7-12.6 33.4 0 46z"
fill="#ffffff"
p-id="4958"
></path>
</svg>
</span>
)}
{this.statusCode !== '-1' &&
item?.taskStatus?.name ===
'NOT_YET_ASSIGNED' && (
<span
class="icon-view icon-tools-view"
title="指派给"
onClick={() => this.showAssign(item)}
>
<svg
t="1629105857363"
style="vertical-align: middle;margin-bottom: 3px;"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="1916"
width="18"
height="18"
>
<path
d="M865.83 328.187H545.556l21.133-26.23a34.055 34.055 0 0 0 4.407-7.141c13.433-30.053 25.274-91.855-15.716-132.846-46.246-46.167-127.854-32.84-169.003 22.115L286.08 305.329c-17.894 11.336-74.76 48.874-105.608 86.944l-105.394 6.292c-17.203 1.036-30.636 15.318-30.636 32.574v320.008c0 17.654 14.017 32.096 31.698 32.6l122.439 3.478 270.735 86.998c3.345 1.62 33.397 15.822 68.068 15.822h0.053c40.725 0 72.741-19.592 90.528-56.334a102.65 102.65 0 0 0 7.805-27.212c23.68-0.716 63.343-11.92 82.192-74.732 6.477-23.92 6.902-46.511 1.38-65.758 23.31-12.584 38.654-34.672 42.69-63.583 2.6-18.476 4.034-40.431-2.655-61.139H863.39c57.82 0 116.173-31.83 116.173-102.953-0.002-82.166-73.22-107.944-113.732-110.147z m-3.505 147.845H620.633c-17.999 0-32.6 14.601-32.6 32.627 0 18.025 14.601 32.627 32.6 32.627 54.902 0 69.821 10.327 73.697 14.76 4.832 5.549 5.84 17.787 3.132 37.326-1.009 7.169-2.708 19.194-28.777 19.194-3.982 0-6.903-0.344-7.38-0.424-17.257-2.974-34.406 8.707-37.645 26.362-3.132 17.628 8.496 34.512 26.07 37.857 2.867 0.531 3.982 1.514 4.99 3.16 3.186 5.043 5.15 17.282 0.532 34.3-8.283 27.476-18.69 27.476-22.088 27.476-7.434 0-15.451-3.796-17.575-5.07-12.265-7.7-27.875-6.133-38.76 3.372-10.884 9.478-14.017 25.38-8.017 38.521 0.265 0.558 6.212 13.91-0.053 28.194-6.371 13.141-15.451 18.504-31.327 18.504h-0.053c-19.858 0-39.344-9.186-43.697-10.939l-279.496-90.156c-2.974-0.956-6-1.487-9.132-1.567l-95.413-2.707V461.882l90.156-5.39c10.62-0.637 20.283-6.45 25.858-15.53 15.663-25.592 69.237-64.485 99.289-82.988 3.027-1.885 5.788-4.248 8.017-7.009l104.599-126.5c19.38-25.752 52.405-35.575 71.68-16.354 15.981 16.008 7.008 46.857 3.503 56.838l-60.795 75.397c-7.91 9.769-9.451 23.202-4.035 34.538a32.576 32.576 0 0 0 29.415 18.557l386.43-0.08c8.443 0.61 50.6 5.602 50.6 44.972 0 32.787-31.857 37.699-52.033 37.699z"
fill="#fff"
p-id="1917"
></path>
</svg>
</span>
)}
{this.statusCode !== '-1' &&
item.taskCompleteUserId &&
item.taskCompleteUserId.indexOf(
employeeId,
) !== -1 &&
item?.taskStatus?.name ===
'HAS_NOT_CONFIRM' && (
<span
class="icon-view icon-tools-view"
title="确认"
onClick={() => this.confimTask(item)}
>
<i class="el-icon-circle-check"></i>
</span>
)}
{this.statusCode !== '-1' &&
item.taskCompleteUserId &&
item.taskCompleteUserId.indexOf(
employeeId,
) !== -1 &&
(item?.taskStatus?.name ===
'HAS_NOT_STARTED' ||
item?.taskStatus?.name ===
'REJECTED') && (
<span
title="开始"
class="icon-view icon-tools-view"
>
<i
class="el-icon-video-play"
onClick={() => this.startTask(item)}
></i>
</span>
)}
{this.statusCode !== '-1' &&
item.taskCompleteUserId &&
item.taskCompleteUserId.indexOf(
employeeId,
) !== -1 &&
(item?.taskStatus?.name ===
'HAS_NOT_CONFIRM' ||
item?.taskStatus?.name ===
'HAS_NOT_STARTED' ||
item?.taskStatus?.name === 'REJECTED' ||
item?.taskStatus?.name ===
'REJECTED_ING') && (
<span
title="驳回"
class="icon-view icon-del-view"
style="text-align:center;"
onClick={() => this.rejectTask(item)}
>
<svg
t="1635312421961"
style="margin-top:3px"
class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="2573"
width="18"
height="18"
>
<path
fill="#fff"
d="M84.80292 468.232171l384.630101-267.805372c0 0 89.454358-47.038316 111.239524 32.574906l0 126.663818c0 0 411.269831 54.283324 374.97009 477.706963 0 0-146.379858-238.867296-374.97009-224.37728l0 137.492444c0 0 1.233084 86.883813-114.861004 47.062875L81.205998 518.906294C81.205998 518.906294 44.906258 493.562069 84.80292 468.232171z"
p-id="2574"
></path>
</svg>
</span>
)}
{this.statusCode !== '-1' &&
employeeId === item.taskCreator &&
(item?.taskStatus?.name === 'PROCESSING' ||
item?.taskStatus?.name === 'REJECTED' ||
item?.taskStatus?.name ===
'REJECTED_ING') && (
<span
title="终止"
class="icon-view icon-del-view"
style="text-align:center;"
onClick={() => this.cadence(item)}
>
<svg
t="1627628609045"
class="icon"
style="margin-top:3px"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="2698"
width="18"
height="18"
>
<path
d="M509.41569707 75.874304c-238.88418133 0-432.5376 193.65341867-432.5376 432.5376s193.65341867 432.5376 432.5376 432.5376c107.184128 0 205.26312107-38.98627413 280.8283136-103.55234133a435.09787307 435.09787307 0 0 0 17.56255573-15.8564352c10.69438293-8.75342507 19.63567787-18.8809216 19.63567787-33.1808768a37.70395307 37.70395307 0 0 0-9.74411094-25.346048l0.01201494-0.01201494-0.29709654-0.29709653a38.1026304 38.1026304 0 0 0-2.162688-2.162688L285.3830656 230.67579733c61.24776107-49.4665728 139.1722496-79.10741333 224.03263147-79.10741333 197.07876693 0 356.84352 159.76475307 356.84352 356.84352 0 28.71022933-3.39039573 56.6296576-9.79326294 83.37708373l0.0425984 0.01419947a37.91694507 37.91694507 0 0 0-1.1370496 9.22309973c0 20.9027072 16.9443328 37.84704 37.84704 37.84704 17.3146112 0 31.9029248-11.63154773 36.40415574-27.50327466l0.00218453-0.00436907 0.0065536-0.0294912c0.29709653-1.05294507 0.55268693-2.1233664 0.75912533-3.211264a429.9194368 429.9194368 0 0 0 4.554752-21.7546752c4.60281173-25.28815787 7.00689067-51.34199467 7.00689067-77.9583488 0.00109227-238.88418133-193.6523264-432.5376-432.53650773-432.5376z m-356.84352 432.5376c0-84.95213227 29.704192-162.95417173 79.26797653-224.23251627l501.82116693 501.82116694c-61.27834453 49.56378453-139.2934912 79.25377707-224.24562346 79.25377706-197.0798592 0.00109227-356.84352-159.76256853-356.84352-356.84242773z"
fill="#fff"
p-id="2699"
></path>
</svg>
</span>
)}
{((this.statusCode !== '-1' &&
item?.taskStatus?.name === 'PROCESSING') ||
item?.taskStatus?.name ===
'REJECTED_ING') && (
<span
title="完成"
class="icon-view icon-tools-view"
>
<i
class="el-icon-circle-check"
onClick={() =>
this.operation('1', item)
}
></i>
</span>
)}
{this.statusCode !== '-1' &&
item?.taskStatus?.name ===
'FOR_ACCEPTANCE' &&
employeeId === item.taskAcceptanceUser && (
<span
title="验收"
class="icon-view icon-tools-view"
>
<i
class="el-icon-s-claim"
onClick={() =>
this.operation('2', item)
}
></i>
</span>
)}
{employeeId === item.taskCreator &&
item?.taskStatus?.name ===
'NOT_YET_ASSIGNED' && (
<span
title="删除"
class="icon-view icon-del-view"
>
<i
class="el-icon-delete"
onClick={() => this.remove(item)}
></i>
</span>
)}
{this.statusCode !== '-1' &&
this.statusCode === '8' &&
item?.taskStatus?.name === 'COMPLETED' &&
employeeId === item.taskAcceptanceUser &&
!item.score && (
<span <span
title="评价" title="评价"
class="icon-view icon-tools-view" class="icon-view icon-tools-view"
...@@ -969,7 +736,7 @@ export default { ...@@ -969,7 +736,7 @@ export default {
} }
></i> ></i>
</span> </span>
)} }
</span> </span>
), ),
}, },
...@@ -1157,6 +924,16 @@ export default { ...@@ -1157,6 +924,16 @@ export default {
methods: { methods: {
sizeChange() {}, sizeChange() {},
onCurrentChange() {}, onCurrentChange() {},
async getOrderTree() {
try {
const res = await getOrderTree()
if (res.code === 200) {
this.treeData = [res.data]
}
} catch (e) {
console.error(e)
}
},
getStatusColor(type) { getStatusColor(type) {
if (type === 'NOT_YET_ASSIGNED') { if (type === 'NOT_YET_ASSIGNED') {
return '#CCCCCC' return '#CCCCCC'
...@@ -1339,11 +1116,9 @@ export default { ...@@ -1339,11 +1116,9 @@ export default {
return '#ddd' return '#ddd'
}, },
handleNodeClick({ item }) { handleNodeClick(data) {
if (item) { this.statusCode = data.statusCode
this.statusCode = item.statusCode
this.getlist() this.getlist()
}
}, },
getStatusTree() { getStatusTree() {
this.detailVisible = false this.detailVisible = false
...@@ -1429,25 +1204,21 @@ export default { ...@@ -1429,25 +1204,21 @@ export default {
} }
callback && callback() callback && callback()
}, },
getlist() { async getlist() {
// const { pageSize, currentPage } = this.loading = true
// this.centerPageOptions const { pageSize, currentPage } =
// axios this.centerPageOptions
// .post('financeTaskManagement/list_page', { axios
// pageSize, .post('platform/platformWorkOrder/list_page', {
// currentPage, pageSize,
// taskStatus: this.statusCode, currentPage,
// copyMe: this.assignMe, statusCode: this.statusCode,
// startTime: })
// this.periodTime && this.periodTime[0], .then((res) => {
// endTime: this.periodTime && this.periodTime[1], this.sourceData = res.data.records
// ...this.searchForm, this.centerPageOptions.total = res.data.total
// }) this.loading = false
// .then((res) => { })
// this.sourceData = res.data.records
// this.centerPageOptions.total = res.data.total
// })
this.sourceData = [{}]
}, },
planList() { planList() {
const { pageSize, currentPage } = this.planPageOptions const { pageSize, currentPage } = this.planPageOptions
...@@ -1618,11 +1389,40 @@ export default { ...@@ -1618,11 +1389,40 @@ export default {
}, },
} }
</script> </script>
<style scoped> <style lang="scss" scoped>
.wraper { .wraper {
height: 100%; height: 100%;
display: flex; display: flex;
overflow: hidden; overflow: hidden;
&::v-deep {
.el-tree-node {
font-size: 14px;
}
.el-tree-node__content {
height: 32px;
padding: 4px 0px;
padding-left: 10px !important;
}
.el-tree-node__children .el-tree-node.is-current {
.el-tree-node__content {
position: relative;
color: #1565c0;
font-size: 16px;
}
.el-tree-node__content::before {
position: absolute;
content: '';
top: 0;
bottom: 0;
left: 0;
width: 4px;
display: block;
background-color: #1565c0;
}
}
}
} }
.page_left { .page_left {
width: 200px; width: 200px;
......
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