From ca1fbcfd90fc1d6977e59cace3c33f2460cfce66 Mon Sep 17 00:00:00 2001 From: xy <271556543@qq.com> Date: Tue, 11 Apr 2023 17:18:12 +0800 Subject: [PATCH] 2023-4-11 --- src/api/achievements/evaluate.js | 33 ++ src/api/achievements/points.js | 33 ++ src/api/system/expand.js | 33 ++ src/components/XyTable/index.vue | 245 +++++++------ src/styles/element-ui.scss | 23 ++ .../achievements/components/addEvaluate.vue | 303 +++++++++++++++ .../achievements/components/addPoint.vue | 347 ++++++++++++++++++ .../achievements/components/addTypes.vue | 37 +- src/views/achievements/evaluate.vue | 184 ++++++++++ src/views/achievements/point.vue | 240 ++++++++++++ src/views/achievements/types.vue | 87 ++++- src/views/budget/point.vue | 197 +++++++++- src/views/budget/traget.vue | 17 + .../contract/components/detailContract.vue | 5 +- vue.config.js | 3 + 15 files changed, 1646 insertions(+), 141 deletions(-) create mode 100644 src/api/achievements/evaluate.js create mode 100644 src/api/achievements/points.js create mode 100644 src/api/system/expand.js create mode 100644 src/views/achievements/components/addEvaluate.vue create mode 100644 src/views/achievements/components/addPoint.vue create mode 100644 src/views/achievements/evaluate.vue create mode 100644 src/views/achievements/point.vue create mode 100644 src/views/budget/traget.vue diff --git a/src/api/achievements/evaluate.js b/src/api/achievements/evaluate.js new file mode 100644 index 0000000..e9082eb --- /dev/null +++ b/src/api/achievements/evaluate.js @@ -0,0 +1,33 @@ +import request from '@/utils/request' + +export function index(params) { + return request({ + method: 'get', + url: '/api/admin/plan_evaluate/index', + params + }) +} + +export function show(params) { + return request({ + method: 'get', + url: '/api/admin/plan_evaluate/show', + params + }) +} + +export function save(data) { + return request({ + method: 'post', + url: '/api/admin/plan_evaluate/save', + data + }) +} + +export function destroy(params) { + return request({ + method: 'get', + url: '/api/admin/plan_evaluate/destroy', + params + }) +} diff --git a/src/api/achievements/points.js b/src/api/achievements/points.js new file mode 100644 index 0000000..75888a1 --- /dev/null +++ b/src/api/achievements/points.js @@ -0,0 +1,33 @@ +import request from '@/utils/request' + +export function index(params) { + return request({ + method: "get", + url: "/api/admin/target/index", + params + }) +} + +export function show(params) { + return request({ + method: "get", + url: "/api/admin/target/show", + params + }) +} + +export function save(data) { + return request({ + method: "post", + url: "/api/admin/target/save", + data + }) +} + +export function destroy(params) { + return request({ + method: "get", + url: "/api/admin/target/destroy", + params + }) +} diff --git a/src/api/system/expand.js b/src/api/system/expand.js new file mode 100644 index 0000000..4274f05 --- /dev/null +++ b/src/api/system/expand.js @@ -0,0 +1,33 @@ +import request from '@/utils/request'; + +export function index(params) { + return request({ + method: 'get', + url: '/api/admin/admin_expand/index', + params + }) +} + +export function save(data) { + return request({ + method: 'post', + url: '/api/admin/admin_expand/save', + data + }) +} + +export function show(params) { + return request({ + method: 'get', + url: '/api/admin/admin_expand/show', + params + }) +} + +export function destroy(params) { + return request({ + method: 'get', + url: '/api/admin/admin_expand/destroy', + params + }) +} diff --git a/src/components/XyTable/index.vue b/src/components/XyTable/index.vue index 559a39d..feec659 100644 --- a/src/components/XyTable/index.vue +++ b/src/components/XyTable/index.vue @@ -16,6 +16,14 @@ export default { type:Number, default:18 }, + expandRowKeys:{ + type: Array, + default: ()=>[] + }, + rowKey:{ + type:[String,Function], + default:'id' + }, cellStyle:{ type:Function, default:()=>{} @@ -102,6 +110,12 @@ export default { cellClick(row, column, cell){ this.$emit('cellClick',row, column, cell) }, + selectAllClick(selection){ + this.$emit('select-all',selection) + }, + selectChange(selection){ + this.$emit('selection-change',selection) + }, createIndexRow(){ return }, @@ -123,10 +137,10 @@ export default { mounted() { }, render(h) { - let {summaryMethod,cellClick,btnWidth,selectClick,height,createIndexRow,tableStyle,treeProps,showSummary,showHeader,$scopedSlots,showIndex,defaultExpandAll,headerCellStyle,headerRowStyle,rowStyle,cellStyle,indent,tableHeight,tableItem,list,deleteClick,editorClick,rowClick,objectSpanMethod} = this + let {rowKey,expandRowKeys,selectChange,selectAllClick,summaryMethod,cellClick,btnWidth,selectClick,height,createIndexRow,tableStyle,treeProps,showSummary,showHeader,$scopedSlots,showIndex,defaultExpandAll,headerCellStyle,headerRowStyle,rowStyle,cellStyle,indent,tableHeight,tableItem,list,deleteClick,editorClick,rowClick,objectSpanMethod} = this return ( -
- { tableItem && tableItem.length>0 ? +
+ {tableItem && tableItem.length > 0 ? ( - { - //序号 - showIndex ? createIndexRow() : '' - } - + on={{ + ['select']: selectClick, + ['cell-click']: cellClick, + ['select-all']: selectAllClick, + ['selection-change']: selectChange, + ['expand-change']: (row, expanded) => this.$emit('expand-change', { row, expanded }) + }} + > { - tableItem.map((item,index)=>{ - //自定义表格内容 - if(item.customFn){ - return ( - - - ) - } - else if(item.multiHd){ - //树结构表格内容 - return ( - - {item.multiHd.map((item1,index1)=>{ - if(item1.customFn){ - return ( - - - ) - }else{ - return ( - - - ) - } - })} - - ) - } - else{ - //默认内容 - return ( - - - ) - } - })} + tableItem.map((item, index) => { + //自定义表格内容 + if (item.customFn) { + return ( + + + ) + } else if (item.multiHd) { + //二级表头结构表格内容 + return ( + + {item.multiHd.map((item1, index1) => { + if (item1.customFn) { + return ( + + + ) + } else { + return ( + + + ) + } + })} + + ) + } else { + //默认内容 + return ( + + + ) + } + })} { $scopedSlots.btns ? $scopedSlots.btns() : @@ -245,19 +276,22 @@ export default { width={btnWidth} header-align="center" scopedSlots={{ - default( scope ){ + default(scope) { return (
deleteClick(scope.row)}}> + on={{ ['on-ok']: () => deleteClick(scope.row) }} + > 删除 + ghost + >删除 + editorClick(scope.row)}>编辑 + onClick={() => editorClick(scope.row)} + >编辑 +
) } - }}> - - ) + }} + > + ) }
) : - } + } + bottom={100} + right={36} + >
) diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss index 3860250..6cab473 100644 --- a/src/styles/element-ui.scss +++ b/src/styles/element-ui.scss @@ -48,6 +48,29 @@ box-sizing: content-box; } +.el-table__body-wrapper{ + + z-index:2 + +} + +//层级选择 +.el-cascader-panel .el-radio { + width: 100%; + height: 100%; + z-index: 10; + position: absolute; + top: 10px; + right: 10px; +} +.el-cascader-panel .el-radio__input { + visibility: hidden; +} +.el-cascader-panel .el-cascader-node__postfix { + top: 10px; +} + + .el-table__body-wrapper{ z-index:2 diff --git a/src/views/achievements/components/addEvaluate.vue b/src/views/achievements/components/addEvaluate.vue new file mode 100644 index 0000000..a8c912d --- /dev/null +++ b/src/views/achievements/components/addEvaluate.vue @@ -0,0 +1,303 @@ + + + + + diff --git a/src/views/achievements/components/addPoint.vue b/src/views/achievements/components/addPoint.vue new file mode 100644 index 0000000..0afd00a --- /dev/null +++ b/src/views/achievements/components/addPoint.vue @@ -0,0 +1,347 @@ + + + + + diff --git a/src/views/achievements/components/addTypes.vue b/src/views/achievements/components/addTypes.vue index 8269fb5..abc0e5f 100644 --- a/src/views/achievements/components/addTypes.vue +++ b/src/views/achievements/components/addTypes.vue @@ -24,7 +24,7 @@ style="width: 300px" :show-all-levels="false" v-model="form.pid" - :options="pids" + :options="pidFormat" :props="{ value: 'id', label: 'name', checkStrictly: true }" @change="pidCascaderHandler" > @@ -87,7 +87,10 @@ import { show, save } from "@/api/achievements/types"; export default { props: { - pids:Array + pids:{ + type: Array, + default:() => [] + } }, data() { return { @@ -95,7 +98,7 @@ export default { id: "", type: "", - cascaderId_pid: "", + cascaderId_pid: 0, form: { pid: "", @@ -134,6 +137,20 @@ export default { sort: "", }; }, + setForm(key = [], value = []) { + if(key instanceof Array) { + key.forEach((key,index) => { + this.form[key] = value[index] ?? ""; + }) + } + if(typeof key === "string"){ + this.form[key] = value + } + if(!key){ + this.init() + } + }, + pidCascaderHandler(e) { if (e.length > 0) { this.form.pid = e.at(-1); @@ -171,6 +188,17 @@ export default { }); }, }, + computed: { + pidFormat() { + return [ + { + id: 0, + name: "根结点", + children: this.pids + } + ] + } + }, watch: { isShow(val) { if (val) { @@ -185,9 +213,6 @@ export default { delete this.form.id; } }, - pids() { - ++this.cascaderId_pid; - }, }, }; diff --git a/src/views/achievements/evaluate.vue b/src/views/achievements/evaluate.vue new file mode 100644 index 0000000..28ae853 --- /dev/null +++ b/src/views/achievements/evaluate.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/src/views/achievements/point.vue b/src/views/achievements/point.vue new file mode 100644 index 0000000..334e1ae --- /dev/null +++ b/src/views/achievements/point.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/src/views/achievements/types.vue b/src/views/achievements/types.vue index c7c5376..d040149 100644 --- a/src/views/achievements/types.vue +++ b/src/views/achievements/types.vue @@ -21,19 +21,42 @@ - + + -
- -
+ + + - +
diff --git a/src/views/budget/point.vue b/src/views/budget/point.vue index 568c8cf..de38a31 100644 --- a/src/views/budget/point.vue +++ b/src/views/budget/point.vue @@ -15,56 +15,227 @@ - + + - +
+ + diff --git a/src/views/budget/traget.vue b/src/views/budget/traget.vue new file mode 100644 index 0000000..1f9066c --- /dev/null +++ b/src/views/budget/traget.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/src/views/contract/components/detailContract.vue b/src/views/contract/components/detailContract.vue index eedaaff..c0c44f4 100644 --- a/src/views/contract/components/detailContract.vue +++ b/src/views/contract/components/detailContract.vue @@ -7,7 +7,7 @@ title="详情" class="contract-detail" > -