|
@@ -2,154 +2,187 @@
|
2
|
2
|
* @Author: ysh
|
3
|
3
|
* @Date: 2025-03-05 09:15:54
|
4
|
4
|
* @LastEditors: Please set LastEditors
|
5
|
|
- * @LastEditTime: 2025-03-12 10:02:46
|
|
5
|
+ * @LastEditTime: 2025-03-25 13:59:38
|
6
|
6
|
-->
|
7
|
7
|
<template>
|
8
|
8
|
<div class="app-container">
|
9
|
|
- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
10
|
|
- <el-form-item label="资料名称" prop="title">
|
11
|
|
- <el-input v-model="queryParams.title" placeholder="请输入资料名称" clearable @keyup.enter.native="handleQuery" />
|
12
|
|
- </el-form-item>
|
13
|
|
- <el-form-item label="上传人" prop="uploader">
|
14
|
|
- <el-input v-model="queryParams.uploader" placeholder="请输入上传人" clearable @keyup.enter.native="handleQuery" />
|
15
|
|
- </el-form-item>
|
16
|
|
- <el-form-item label="上传部门" prop="uploadDept">
|
17
|
|
- <el-input v-model="queryParams.uploadDept" placeholder="请输入上传部门" clearable @keyup.enter.native="handleQuery" />
|
18
|
|
- </el-form-item>
|
19
|
|
- <el-form-item label="专业领域" prop="field">
|
20
|
|
- <el-input v-model="queryParams.field" placeholder="请输入专业领域" clearable @keyup.enter.native="handleQuery" />
|
21
|
|
- </el-form-item>
|
22
|
|
- <el-form-item label="上传时间" prop="uploadTime">
|
23
|
|
- <el-date-picker clearable v-model="queryParams.uploadTime" type="date" value-format="yyyy-MM-dd"
|
24
|
|
- placeholder="请选择上传时间">
|
25
|
|
- </el-date-picker>
|
26
|
|
- </el-form-item>
|
27
|
|
- <el-form-item>
|
28
|
|
- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
29
|
|
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
30
|
|
- </el-form-item>
|
31
|
|
- </el-form>
|
32
|
|
-
|
33
|
|
- <el-row :gutter="10" class="mb8">
|
34
|
|
- <el-col :span="1.5">
|
35
|
|
- <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
36
|
|
- v-hasPermi="['oa:resource:add']">新增</el-button>
|
37
|
|
- </el-col>
|
38
|
|
- <el-col :span="1.5">
|
39
|
|
- <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
40
|
|
- v-hasPermi="['oa:resource:edit']">修改</el-button>
|
41
|
|
- </el-col>
|
42
|
|
- <el-col :span="1.5">
|
43
|
|
- <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
44
|
|
- v-hasPermi="['oa:resource:remove']">删除</el-button>
|
45
|
|
- </el-col>
|
46
|
|
- <el-col :span="1.5">
|
47
|
|
- <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
48
|
|
- v-hasPermi="['oa:resource:export']">导出</el-button>
|
|
9
|
+ <el-row :gutter="20">
|
|
10
|
+ <el-col :span="6">
|
|
11
|
+ <el-row>
|
|
12
|
+ <div class="title">
|
|
13
|
+ 专业领域
|
|
14
|
+ <div class="line"></div>
|
|
15
|
+ </div>
|
|
16
|
+ <resource-tree @getTreeData="getTreeDataFn" @clickNode="queryField">
|
|
17
|
+ </resource-tree>
|
|
18
|
+ </el-row>
|
49
|
19
|
</el-col>
|
50
|
|
- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
51
|
|
- </el-row>
|
|
20
|
+ <el-col :span="18">
|
|
21
|
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
|
|
22
|
+ label-width="68px">
|
|
23
|
+ <el-form-item label="资料名称" prop="title">
|
|
24
|
+ <el-input v-model="queryParams.title" placeholder="请输入资料名称" clearable @keyup.enter.native="handleQuery" />
|
|
25
|
+ </el-form-item>
|
|
26
|
+ <el-form-item label="上传人" prop="uploader">
|
|
27
|
+ <el-select v-model="queryParams.uploader" filterable clearable @change="handleQuery">
|
|
28
|
+ <el-option v-for="item in $store.state.user.userList" :key="item.userId" :label="item.nickName"
|
|
29
|
+ :value="item.userId">
|
|
30
|
+ </el-option>
|
|
31
|
+ </el-select>
|
|
32
|
+ </el-form-item>
|
|
33
|
+ <el-form-item label="上传部门" prop="uploadDept">
|
|
34
|
+ <el-select v-model="queryParams.uploadDept" filterable clearable @change="handleQuery">
|
|
35
|
+ <el-option v-for="item in $store.state.user.deptList" :key="item.deptId" :label="item.deptName"
|
|
36
|
+ :value="item.deptId">
|
|
37
|
+ </el-option>
|
|
38
|
+ </el-select>
|
|
39
|
+ </el-form-item>
|
|
40
|
+ <el-form-item label="上传时间" prop="uploadTime">
|
|
41
|
+ <el-date-picker clearable v-model="queryParams.uploadTime" type="date" value-format="yyyy-MM-dd"
|
|
42
|
+ placeholder="请选择上传时间">
|
|
43
|
+ </el-date-picker>
|
|
44
|
+ </el-form-item>
|
|
45
|
+ <el-form-item>
|
|
46
|
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
47
|
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
48
|
+ </el-form-item>
|
|
49
|
+ </el-form>
|
|
50
|
+
|
|
51
|
+ <el-row :gutter="10" class="mb8">
|
|
52
|
+ <el-col :span="1.5">
|
|
53
|
+ <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
|
54
|
+ v-hasPermi="['oa:resource:add']">新增</el-button>
|
|
55
|
+ </el-col>
|
|
56
|
+ <el-col :span="1.5">
|
|
57
|
+ <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
|
58
|
+ v-hasPermi="['oa:resource:edit']">修改</el-button>
|
|
59
|
+ </el-col>
|
|
60
|
+ <el-col :span="1.5">
|
|
61
|
+ <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
|
62
|
+ v-hasPermi="['oa:resource:remove']">删除</el-button>
|
|
63
|
+ </el-col>
|
|
64
|
+ <el-col :span="1.5">
|
|
65
|
+ <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
|
66
|
+ v-hasPermi="['oa:resource:export']">导出</el-button>
|
|
67
|
+ </el-col>
|
|
68
|
+ <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
69
|
+ </el-row>
|
52
|
70
|
|
53
|
|
- <el-table v-loading="loading" :data="resourceList" @selection-change="handleSelectionChange">
|
54
|
|
- <el-table-column type="selection" width="55" align="center" />
|
55
|
|
- <el-table-column label="资料id" align="center" prop="resourceId" />
|
56
|
|
- <el-table-column label="上传人" align="center" prop="uploader">
|
57
|
|
- <template slot-scope="scope">
|
58
|
|
- {{ getUserName(scope.row.uploader) }}
|
59
|
|
- </template>
|
60
|
|
- </el-table-column>
|
61
|
|
- <el-table-column label="上传部门" align="center" prop="uploadDept">
|
62
|
|
- <template slot-scope="scope">
|
63
|
|
- {{ getDeptName(scope.row.uploadDept) }}
|
64
|
|
- </template>
|
65
|
|
- </el-table-column>
|
66
|
|
- <el-table-column label="标题" align="center" prop="title" />
|
67
|
|
- <el-table-column label="上传附件" align="center" prop="sourcePath" :formatter="formatterPath" />
|
68
|
|
- <el-table-column label="专业领域" align="center" prop="field" />
|
69
|
|
- <el-table-column label="类型" align="center" prop="type" />
|
70
|
|
- <el-table-column label="上传时间" align="center" prop="uploadTime" width="180">
|
71
|
|
- <template slot-scope="scope">
|
72
|
|
- <span>{{ parseTime(scope.row.uploadTime, '{y}-{m}-{d}') }}</span>
|
73
|
|
- </template>
|
74
|
|
- </el-table-column>
|
75
|
|
- <el-table-column label="学时" align="center" prop="hours" />
|
76
|
|
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
77
|
|
- <template slot-scope="scope">
|
78
|
|
- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
79
|
|
- v-hasPermi="['oa:resource:edit']">修改</el-button>
|
80
|
|
- <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
81
|
|
- v-hasPermi="['oa:resource:remove']">删除</el-button>
|
82
|
|
- </template>
|
83
|
|
- </el-table-column>
|
84
|
|
- </el-table>
|
|
71
|
+ <el-table v-loading="loading" :data="resourceList" @selection-change="handleSelectionChange">
|
|
72
|
+ <el-table-column type="selection" width="55" align="center" />
|
|
73
|
+ <el-table-column label="资料id" align="center" prop="resourceId" />
|
|
74
|
+ <el-table-column label="上传人" align="center" prop="uploader">
|
|
75
|
+ <template slot-scope="scope">
|
|
76
|
+ {{ getUserName(scope.row.uploader) }}
|
|
77
|
+ </template>
|
|
78
|
+ </el-table-column>
|
|
79
|
+ <el-table-column label="上传部门" align="center" prop="uploadDept">
|
|
80
|
+ <template slot-scope="scope">
|
|
81
|
+ {{ getDeptName(scope.row.uploadDept) }}
|
|
82
|
+ </template>
|
|
83
|
+ </el-table-column>
|
|
84
|
+ <el-table-column label="资料名称" align="center" prop="title" />
|
|
85
|
+ <el-table-column label="上传附件" align="center" prop="sourcePath" :formatter="formatterPath" />
|
|
86
|
+ <el-table-column label="专业领域" align="center" prop="field" />
|
|
87
|
+ <el-table-column label="类型" align="center" prop="type" />
|
|
88
|
+ <el-table-column label="上传时间" align="center" prop="uploadTime" width="180">
|
|
89
|
+ <template slot-scope="scope">
|
|
90
|
+ <span>{{ parseTime(scope.row.uploadTime, '{y}-{m}-{d}') }}</span>
|
|
91
|
+ </template>
|
|
92
|
+ </el-table-column>
|
|
93
|
+ <el-table-column label="学时" align="center" prop="hours" />
|
|
94
|
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
95
|
+ <template slot-scope="scope">
|
|
96
|
+ <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
|
97
|
+ v-hasPermi="['oa:resource:edit']">修改</el-button>
|
|
98
|
+ <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
|
99
|
+ v-hasPermi="['oa:resource:remove']">删除</el-button>
|
|
100
|
+ </template>
|
|
101
|
+ </el-table-column>
|
|
102
|
+ </el-table>
|
85
|
103
|
|
86
|
|
- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
87
|
|
- @pagination="getList" />
|
|
104
|
+ <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
|
|
105
|
+ :limit.sync="queryParams.pageSize" @pagination="getList" />
|
88
|
106
|
|
89
|
|
- <!-- 添加或修改cmc学习资料对话框 -->
|
90
|
|
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
91
|
|
- <el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
92
|
|
- <el-form-item label="资料名称" prop="title">
|
93
|
|
- <el-input v-model="form.title" placeholder="请输入资料名称" />
|
94
|
|
- </el-form-item>
|
95
|
|
- <el-form-item label="上传附件" prop="sourcePath">
|
96
|
|
- <FileUpload v-if="form.sourcePath == null || form.sourcePath == ''" :isShowTip="false" :limit="1"
|
97
|
|
- :filePathName="'教育学习/学习资料'" :fileType="['pdf', 'mp4']" :fileSize="10240" @input="getDocumentPath">
|
98
|
|
- </FileUpload>
|
99
|
|
- <div v-if="form.sourcePath">
|
100
|
|
- <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.sourcePath}`)">
|
101
|
|
- {{ getFileName(form.sourcePath) }}
|
102
|
|
- </el-link>
|
103
|
|
- <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + form.sourcePath}`"
|
104
|
|
- :underline="false" target="_blank">
|
105
|
|
- <span class="el-icon-download">下载文件</span>
|
106
|
|
- </el-link>
|
107
|
|
- <el-link class="ml20" type="danger" @click="handleDeleteDocument" :underline="false"
|
108
|
|
- v-hasPermi="['oa:resource:edit']">
|
109
|
|
- <span class="el-icon-delete">删除文件</span>
|
110
|
|
- </el-link>
|
111
|
|
- <!-- <FileUpload v-if="taskName == '参培申请'" :limit="1" :filePathName="'参培/佐证附件'"
|
|
107
|
+ <!-- 添加或修改cmc学习资料对话框 -->
|
|
108
|
+ <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
109
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
110
|
+ <el-form-item label="资料名称" prop="title">
|
|
111
|
+ <el-input v-model="form.title" placeholder="请输入资料名称" />
|
|
112
|
+ </el-form-item>
|
|
113
|
+ <el-form-item label="上传附件" prop="sourcePath">
|
|
114
|
+ <FileUpload v-if="form.sourcePath == null || form.sourcePath == ''" :isShowTip="false" :limit="1"
|
|
115
|
+ :filePathName="'教育学习/学习资料'" :fileType="['pdf', 'mp4']" :fileSize="10240" @input="getDocumentPath">
|
|
116
|
+ </FileUpload>
|
|
117
|
+ <div v-if="form.sourcePath">
|
|
118
|
+ <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.sourcePath}`)">
|
|
119
|
+ {{ getFileName(form.sourcePath) }}
|
|
120
|
+ </el-link>
|
|
121
|
+ <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + form.sourcePath}`"
|
|
122
|
+ :underline="false" target="_blank">
|
|
123
|
+ <span class="el-icon-download">下载文件</span>
|
|
124
|
+ </el-link>
|
|
125
|
+ <el-link class="ml20" type="danger" @click="handleDeleteDocument" :underline="false"
|
|
126
|
+ v-hasPermi="['oa:resource:edit']">
|
|
127
|
+ <span class="el-icon-delete">删除文件</span>
|
|
128
|
+ </el-link>
|
|
129
|
+ <!-- <FileUpload v-if="taskName == '参培申请'" :limit="1" :filePathName="'参培/佐证附件'"
|
112
|
130
|
:fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf', 'rar', 'zip']" @input="getDocumentPath"></FileUpload> -->
|
|
131
|
+ </div>
|
|
132
|
+ <div style="font-size:12px;color:#e45656">
|
|
133
|
+ tips:文档仅支持pdf格式,视频仅支持mp4格式
|
|
134
|
+ </div>
|
|
135
|
+ </el-form-item>
|
|
136
|
+ <el-form-item label="资料类型" prop="type">
|
|
137
|
+ <el-select v-model="form.type" clearable>
|
|
138
|
+ <el-option label="视频" value="视频"></el-option>
|
|
139
|
+ <el-option label="文档" value="文档"></el-option>
|
|
140
|
+ </el-select>
|
|
141
|
+ </el-form-item>
|
|
142
|
+ <el-form-item label="专业领域" prop="fieldId">
|
|
143
|
+ <!-- <el-input v-model="form.fieldId" placeholder="请输入专业领域" /> -->
|
|
144
|
+ <!-- <el-cascader :options="fieldOptions" v-model="form.fieldId" :show-all-levels="false"
|
|
145
|
+ :props="{ children: 'children', label: 'field', value: 'fieldId' }">
|
|
146
|
+ <template slot-scope="{ node, data }">
|
|
147
|
+ <span>{{ data.field }}</span>
|
|
148
|
+ </template>
|
|
149
|
+ </el-cascader> -->
|
|
150
|
+ <el-tag>{{ form.field }}</el-tag>
|
|
151
|
+ <el-tree ref="fieldIdTree" class="tree-border" :data="fieldOptions" show-checkbox
|
|
152
|
+ :default-expanded-keys="this.form.fieldId ? [this.form.fieldId] : []" node-key="fieldId"
|
|
153
|
+ empty-text="加载中,请稍候" :check-strictly="true" @check="handleChechChange"
|
|
154
|
+ :props="{ children: 'children', label: 'field', value: 'fieldId' }">
|
|
155
|
+ </el-tree>
|
|
156
|
+ </el-form-item>
|
|
157
|
+ <el-form-item label="学时" prop="hours">
|
|
158
|
+ <el-input-number v-model="form.hours" :min="0" :precision="1" />
|
|
159
|
+ </el-form-item>
|
|
160
|
+ <el-form-item label="上传人" prop="uploader">
|
|
161
|
+ {{ getUserName(form.uploader) }}
|
|
162
|
+ </el-form-item>
|
|
163
|
+ <el-form-item label="上传部门" prop="uploadDept">
|
|
164
|
+ {{ getDeptName(form.uploadDept) }}
|
|
165
|
+ </el-form-item>
|
|
166
|
+ <el-form-item label="上传时间" prop="uploadTime">
|
|
167
|
+ {{ form.uploadTime }}
|
|
168
|
+ </el-form-item>
|
|
169
|
+ </el-form>
|
|
170
|
+ <div slot="footer" class="dialog-footer">
|
|
171
|
+ <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
172
|
+ <el-button @click="cancel">取 消</el-button>
|
113
|
173
|
</div>
|
114
|
|
- <div style="font-size:12px;color:#e45656">
|
115
|
|
- tips:文档仅支持pdf格式,视频仅支持mp4格式
|
116
|
|
- </div>
|
117
|
|
- </el-form-item>
|
118
|
|
- <el-form-item label="资料类型" prop="type">
|
119
|
|
- <el-select v-model="form.type" clearable>
|
120
|
|
- <el-option label="视频" value="视频"></el-option>
|
121
|
|
- <el-option label="文档" value="文档"></el-option>
|
122
|
|
- </el-select>
|
123
|
|
- </el-form-item>
|
124
|
|
- <el-form-item label="专业领域" prop="field">
|
125
|
|
- <el-input v-model="form.field" placeholder="请输入专业领域" />
|
126
|
|
- </el-form-item>
|
127
|
|
- <el-form-item label="学时" prop="hours">
|
128
|
|
- <el-input-number v-model="form.hours" :min="0" :precision="1" />
|
129
|
|
- </el-form-item>
|
130
|
|
- <el-form-item label="上传人" prop="uploader">
|
131
|
|
- {{ getUserName(form.uploader) }}
|
132
|
|
- </el-form-item>
|
133
|
|
- <el-form-item label="上传部门" prop="uploadDept">
|
134
|
|
- {{ getDeptName(form.uploadDept) }}
|
135
|
|
- </el-form-item>
|
136
|
|
- <el-form-item label="上传时间" prop="uploadTime">
|
137
|
|
- {{ form.uploadTime }}
|
138
|
|
- </el-form-item>
|
139
|
|
- </el-form>
|
140
|
|
- <div slot="footer" class="dialog-footer">
|
141
|
|
- <el-button type="primary" @click="submitForm">确 定</el-button>
|
142
|
|
- <el-button @click="cancel">取 消</el-button>
|
143
|
|
- </div>
|
144
|
|
- </el-dialog>
|
|
174
|
+ </el-dialog>
|
|
175
|
+ </el-col>
|
|
176
|
+ </el-row>
|
145
|
177
|
</div>
|
146
|
178
|
</template>
|
147
|
179
|
|
148
|
180
|
<script>
|
149
|
|
-import { listResource, getResource, delResource, addResource, updateResource } from "@/api/oa/study/resource";
|
|
181
|
+import { listResource, getResource, delResource, addResource, updateResource, getListBelow } from "@/api/oa/study/resource";
|
150
|
182
|
import { parseTime } from "@/utils/ruoyi";
|
151
|
|
-
|
|
183
|
+import resourceTree from './components/resourceTree.vue';
|
152
|
184
|
export default {
|
|
185
|
+ components: { resourceTree },
|
153
|
186
|
name: "Resource",
|
154
|
187
|
data() {
|
155
|
188
|
return {
|
|
@@ -180,7 +213,7 @@ export default {
|
180
|
213
|
uploadDept: null,
|
181
|
214
|
title: null,
|
182
|
215
|
sourcePath: null,
|
183
|
|
- field: null,
|
|
216
|
+ fieldId: null,
|
184
|
217
|
type: null,
|
185
|
218
|
uploadTime: null,
|
186
|
219
|
hours: null
|
|
@@ -188,8 +221,10 @@ export default {
|
188
|
221
|
// 表单参数
|
189
|
222
|
form: {},
|
190
|
223
|
// 表单校验
|
191
|
|
- rules: {
|
192
|
|
- }
|
|
224
|
+ rules: {},
|
|
225
|
+ treeData: [],
|
|
226
|
+ fieldOptions: [],
|
|
227
|
+ currentCheckedKey: null,
|
193
|
228
|
};
|
194
|
229
|
},
|
195
|
230
|
watch: {
|
|
@@ -205,7 +240,7 @@ export default {
|
205
|
240
|
} else {
|
206
|
241
|
this.form.type = ''
|
207
|
242
|
}
|
208
|
|
- }
|
|
243
|
+ },
|
209
|
244
|
},
|
210
|
245
|
created() {
|
211
|
246
|
this.getList();
|
|
@@ -220,6 +255,14 @@ export default {
|
220
|
255
|
this.loading = false;
|
221
|
256
|
});
|
222
|
257
|
},
|
|
258
|
+ getAllListByFiedldId() {
|
|
259
|
+ this.loading = true;
|
|
260
|
+ getListBelow(this.queryParams).then(response => {
|
|
261
|
+ this.resourceList = response.rows;
|
|
262
|
+ this.total = response.total;
|
|
263
|
+ this.loading = false;
|
|
264
|
+ })
|
|
265
|
+ },
|
223
|
266
|
// 取消按钮
|
224
|
267
|
cancel() {
|
225
|
268
|
this.open = false;
|
|
@@ -233,7 +276,7 @@ export default {
|
233
|
276
|
uploadDept: null,
|
234
|
277
|
title: null,
|
235
|
278
|
sourcePath: null,
|
236
|
|
- field: null,
|
|
279
|
+ fieldId: null,
|
237
|
280
|
type: null,
|
238
|
281
|
uploadTime: null,
|
239
|
282
|
hours: null
|
|
@@ -264,6 +307,9 @@ export default {
|
264
|
307
|
this.form.uploadDept = this.$store.getters.deptId;
|
265
|
308
|
this.form.uploadTime = parseTime(new Date(), '{y}-{m}-{d}');
|
266
|
309
|
this.title = "新增学习资料";
|
|
310
|
+ this.$nextTick(() => {
|
|
311
|
+ this.$refs.fieldIdTree.setCheckedKeys([]);
|
|
312
|
+ });
|
267
|
313
|
},
|
268
|
314
|
/** 修改按钮操作 */
|
269
|
315
|
handleUpdate(row) {
|
|
@@ -272,11 +318,16 @@ export default {
|
272
|
318
|
getResource(resourceId).then(response => {
|
273
|
319
|
this.form = response.data;
|
274
|
320
|
this.open = true;
|
275
|
|
- this.title = "修改cmc学习资料";
|
|
321
|
+ this.title = "修改学习资料";
|
|
322
|
+ console.log(this.$refs.fieldIdTree);
|
|
323
|
+ this.$nextTick(() => {
|
|
324
|
+ this.$refs.fieldIdTree.setCheckedKeys([this.form.fieldId]);
|
|
325
|
+ });
|
276
|
326
|
});
|
277
|
327
|
},
|
278
|
328
|
/** 提交按钮 */
|
279
|
329
|
submitForm() {
|
|
330
|
+ console.log(this.form);
|
280
|
331
|
this.$refs["form"].validate(valid => {
|
281
|
332
|
if (valid) {
|
282
|
333
|
if (this.form.resourceId != null) {
|
|
@@ -326,7 +377,78 @@ export default {
|
326
|
377
|
formatterPath(row) {
|
327
|
378
|
let name = this.getFileName(row.sourcePath)
|
328
|
379
|
return name
|
|
380
|
+ },
|
|
381
|
+ queryField(data) {
|
|
382
|
+ if (data.fieldId) {
|
|
383
|
+ this.queryParams.fieldId = data.fieldId
|
|
384
|
+ this.getAllListByFiedldId();
|
|
385
|
+ } else {
|
|
386
|
+ this.queryParams.fieldId = null
|
|
387
|
+ this.getList();
|
|
388
|
+ }
|
|
389
|
+ },
|
|
390
|
+ getTreeDataFn(data) {
|
|
391
|
+ this.fieldOptions = this.removeEmptyChildren(data);
|
|
392
|
+ },
|
|
393
|
+ removeEmptyChildren(arr) {
|
|
394
|
+ return arr.map(item => {
|
|
395
|
+ // 创建新对象(不修改原对象)
|
|
396
|
+ const newItem = { ...item };
|
|
397
|
+ // 递归处理子节点
|
|
398
|
+ if (newItem.children && Array.isArray(newItem.children)) {
|
|
399
|
+ if (newItem.children.length === 0) {
|
|
400
|
+ delete newItem.children; // 删除空数组属性
|
|
401
|
+ } else {
|
|
402
|
+ newItem.children = this.removeEmptyChildren(newItem.children); // 递归处理子节点
|
|
403
|
+ }
|
|
404
|
+ }
|
|
405
|
+
|
|
406
|
+ return newItem;
|
|
407
|
+ });
|
|
408
|
+ },
|
|
409
|
+ handleChechChange(currentNode, checkedStatus) {
|
|
410
|
+ const checkedKeys = checkedStatus.checkedKeys;
|
|
411
|
+ let currentId = currentNode.fieldId;
|
|
412
|
+ // 如果选中超过1个节点
|
|
413
|
+ if (checkedKeys.length > 1) {
|
|
414
|
+ // 保留最后一个选中的节点
|
|
415
|
+ const lastKey = checkedKeys.filter(item => item == currentId);
|
|
416
|
+ this.$refs.fieldIdTree.setCheckedKeys([lastKey]);
|
|
417
|
+ this.form.fieldId = currentId
|
|
418
|
+ this.form.field = currentNode.field;
|
|
419
|
+ return;
|
|
420
|
+ }
|
|
421
|
+ // 如果取消选中当前节点
|
|
422
|
+ if (checkedKeys.length === 0) {
|
|
423
|
+ this.currentCheckedKey = null;
|
|
424
|
+ this.form.fieldId = null;
|
|
425
|
+ this.form.field = null;
|
|
426
|
+ } else {
|
|
427
|
+ this.currentCheckedKey = checkedKeys[0];
|
|
428
|
+ this.form.fieldId = currentId;
|
|
429
|
+ this.form.field = currentNode.field;
|
|
430
|
+ }
|
329
|
431
|
}
|
330
|
432
|
}
|
331
|
|
-};
|
|
433
|
+}
|
332
|
434
|
</script>
|
|
435
|
+
|
|
436
|
+<style lang="scss" scoped>
|
|
437
|
+.title {
|
|
438
|
+ position: relative;
|
|
439
|
+ font-weight: bold;
|
|
440
|
+ font-size: 18px;
|
|
441
|
+ padding-left: 40px;
|
|
442
|
+ padding-bottom: 20px;
|
|
443
|
+
|
|
444
|
+ .line {
|
|
445
|
+ position: absolute;
|
|
446
|
+ left: 22px;
|
|
447
|
+ top: 3px;
|
|
448
|
+ width: 5px;
|
|
449
|
+ height: 20px;
|
|
450
|
+ border-radius: 10px;
|
|
451
|
+ background-color: #2893e5;
|
|
452
|
+ }
|
|
453
|
+}
|
|
454
|
+</style>
|