瀏覽代碼

项目资源权限控制

dsy 1 月之前
父節點
當前提交
357eabb3ed

+ 1 - 0
src/components/CommonPreview.vue

@@ -450,6 +450,7 @@ import * as OpenCC from 'opencc-js';
 import { isTrue } from '@/utils/validate';
 import { getConfig, getToken } from '@/utils/auth';
 import { CreateCoursewarePreviewURL } from '@/api/app';
+import { Base64 } from 'js-base64';
 
 export default {
   name: 'CommonPreview',

+ 5 - 1
src/views/book/courseware/create/components/CreateCanvas.vue

@@ -158,6 +158,7 @@ export default {
     return {
       getBookUnifiedAttr: () => this.book_unified_attrib,
       getTitleList: () => this.title_list,
+      getProjectResourcePopedom: () => this.projectResourcePopedom,
     };
   },
   props: {
@@ -205,6 +206,7 @@ export default {
       book_unified_attrib: unified_attrib,
       title_list: [],
       curComponentId: '', // 当前选中组件 id
+      projectResourcePopedom: [], // 当前编辑人员的项目资源权限
     };
   },
   computed: {
@@ -339,7 +341,7 @@ export default {
       spinner: 'el-icon-loading',
     });
     ContentGetCoursewareContent({ id: this.courseware_id })
-      .then(({ content, content_group_row_list, title_list }) => {
+      .then(({ content, content_group_row_list, title_list, my_project_resource_popedom }) => {
         if (content) {
           let parsedContent = JSON.parse(content);
           if (
@@ -367,6 +369,8 @@ export default {
             deep: true,
           },
         );
+
+        this.projectResourcePopedom = my_project_resource_popedom || [];
       })
       .finally(() => {
         loading.close();

+ 17 - 3
src/views/book/courseware/create/components/base/common/UploadFile.vue

@@ -18,8 +18,17 @@
         >
           <el-button>{{ type === 'h5_games' ? '选择Zip压缩包或单个html文件' : '选取' + labelText + '文件' }}</el-button>
         </el-upload>
-        <el-button size="small" type="primary" @click="uploadFiles">上传</el-button>
-        <el-button size="small" type="primary" @click="useResource">使用资源</el-button>
+        <el-button
+          v-if="isEnable(projectResourcePopedom.is_can_upload)"
+          size="small"
+          type="primary"
+          @click="uploadFiles"
+        >
+          上传
+        </el-button>
+        <el-button v-if="isEnable(projectResourcePopedom.is_can_use)" size="small" type="primary" @click="useResource">
+          使用资源
+        </el-button>
       </div>
     </div>
     <el-divider v-if="showDivider" />
@@ -88,6 +97,7 @@
 <script>
 import { fileUpload } from '@/api/app';
 import { conversionSize } from '@/utils/common';
+import { isEnable } from '@/views/book/courseware/data/common';
 
 import FillDescribe from '../../common/FillDescribe.vue';
 import SelectResource from './SelectResource.vue';
@@ -98,7 +108,7 @@ export default {
     FillDescribe,
     SelectResource,
   },
-  inject: ['property', 'courseware_id', 'project_id'],
+  inject: ['property', 'courseware_id', 'project_id', 'getProjectResourcePopedom'],
   props: {
     // 课件id
     coursewareId: {
@@ -194,6 +204,7 @@ export default {
         file_info: this.fileInfo,
       },
       visibleResource: false,
+      isEnable,
     };
   },
   computed: {
@@ -212,6 +223,9 @@ export default {
       }
       return accept;
     },
+    projectResourcePopedom() {
+      return this.getProjectResourcePopedom();
+    },
   },
   watch: {
     content: {

+ 4 - 4
src/views/book/courseware/preview/components/newWord_template/NewWordTemplatePreview.vue

@@ -43,6 +43,7 @@
           >
             <EditDiv
               :id="'b' + item.content + index"
+              ref="editDiv"
               v-model="userAnswer[index].answer_pinyin"
               :can-edit="!item.is_example && !disabled"
               :text-align="'center'"
@@ -56,7 +57,6 @@
                     : '#deebff',
               }"
               @input="changeAnswer(item, index)"
-              ref="editDiv"
             />
           </div>
           <div class="items-flex">
@@ -88,6 +88,7 @@
               >
                 <EditDiv
                   :id="'c' + items.con + index + indexs"
+                  ref="editDiv"
                   v-model="userAnswer[index].item[indexs].answer_pinyin"
                   :can-edit="!items.is_example && !disabled"
                   :text-align="'center'"
@@ -102,7 +103,6 @@
                         ? data.unified_attrib.assist_color
                         : '#deebff',
                   }"
-                  ref="editDiv"
                   @input="changeAnswer(item, index, indexs)"
                 />
               </div>
@@ -171,6 +171,7 @@
                 <EditDiv
                   v-if="items && items.type === 'hanzi' && items.is_can_input_answer"
                   :id="'a' + items.con + index + indexs"
+                  ref="editDiv"
                   v-model="userAnswer[index].item[indexs].answer"
                   :can-edit="!items.is_example && !disabled"
                   :text-align="'center'"
@@ -183,7 +184,6 @@
                         ? data.unified_attrib.assist_color
                         : '#deebff',
                   }"
-                  ref="editDiv"
                   @input="changeAnswer(items, index, indexs)"
                 />
               </div>
@@ -192,6 +192,7 @@
           <div v-if="data.answer_type.indexOf('en') > -1 && data.property.model === 'input'" class="inputdv en-common">
             <EditDiv
               :id="'d' + item.content + index"
+              ref="editDiv"
               v-model="userAnswer[index].answer_en"
               :can-edit="!item.is_example && !disabled"
               :text-align="'center'"
@@ -204,7 +205,6 @@
                     ? data.unified_attrib.assist_color
                     : '#deebff',
               }"
-              ref="editDiv"
               @input="changeAnswer(item, index)"
             />
           </div>