Browse Source

木易华康-新增欢迎语

Long 5 days ago
parent
commit
544ed5cbe6

+ 3 - 0
.env.prod-myhk

@@ -38,3 +38,6 @@ VUE_APP_COURSE_DEFAULT = 2
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
+
+# 项目
+VUE_APP_PROJECT = 'myhk'

+ 10 - 0
src/api/qw/friendWelcome.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 查询好友欢迎语列表
+export function listFriendWelcome(query) {
+  return request({
+    url: '/qw/friendWelcome/list',
+    method: 'get',
+    params: query
+  })
+}

+ 8 - 0
src/api/qw/user.js

@@ -264,3 +264,11 @@ export function selectCloudAP(data) {
     data: data
   })
 }
+
+export function getQwAllUserList(query) {
+  return request({
+    url: '/qw/user/getQwAllUserList',
+    method: 'get',
+    params: query
+  })
+}

+ 18 - 7
src/views/course/videoResource/index.vue

@@ -945,6 +945,7 @@ export default {
       isProcessingBatch: false, // 是否正在处理批次
       currentBatchIndex: 0, // 当前批次索引
       uploadCancellationTokens: new Map(), // Store cancellation functions by video ID
+      currentProject: process.env.VUE_APP_PROJECT
     }
   },
   watch: {
@@ -1661,14 +1662,24 @@ export default {
     /** 显示上传面板 */
     showUploadPanel() {
       this.showUpload = true;
-      this.batchUploadForm = {
-        typeId: null,
-        typeSubId: null,
-        projectIds: [],
-        files: []
-      };
+
+      if (this.currentProject === 'myhk') {
+        this.batchUploadForm = {
+          ...this.batchUploadForm,
+          projectIds: [],
+          files: []
+        };
+      } else {
+        this.batchUploadForm = {
+          typeId: null,
+          typeSubId: null,
+          projectIds: [],
+          files: []
+        };
+        this.subTypeList = []
+      }
+
       this.batchFileList = [];
-      this.subTypeList = []
       if (this.$refs.batchVideoUpload) {
         this.$refs.batchVideoUpload.clearFiles();
       }

+ 197 - 0
src/views/qw/friendWelcome/index.vue

@@ -0,0 +1,197 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
+      <el-form-item label="销售公司" prop="companyId">
+        <el-select v-model="queryParams.companyId" clearable placeholder="销售公司" @change="changeCorpOrCompany()" size="small">
+          <el-option
+            v-for="dict in companyList"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="企微主体" prop="corpId">
+        <el-select v-model="queryParams.corpId" clearable placeholder="企微主体" @change="changeCorpOrCompany()" size="small">
+          <el-option
+            v-for="dict in myQwCompanyList"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="使用的成员" prop="qwUserIds">
+        <el-select v-model="queryParams.qwUserIds" filterable  clearable placeholder="公司员工" size="small">
+          <el-option
+            v-for="dict in companyUserList"
+            :key="dict.id"
+            :label="dict.qwUserName+'('+dict.qwUserId+')'"
+            :value="dict.id">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="是否开启分时段" prop="isDayparting">
+        <el-select v-model="queryParams.isDayparting" placeholder="请选择" clearable size="small">
+          <el-option v-for="dict in allowSelectOptions" :key="dict.dictValue" :label="dict.dictLabel"  :value="dict.dictValue"/>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createTime">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.createTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="更新时间" prop="updateTime">
+        <el-date-picker clearable size="small"
+                        v-model="queryParams.updateTime"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择更新时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="是否发送欢迎语" prop="isSendMsg">
+        <el-select v-model="queryParams.isSendMsg" placeholder="请选择" clearable size="small" >
+          <el-option v-for="dict in allowSelectOptions" :key="dict.dictValue" :label="dict.dictLabel"  :value="dict.dictValue"/>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <el-row :gutter="10" class="mb8">
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="friendWelcomeList" border>
+      <el-table-column label="id" align="center" prop="id" width="180"/>
+      <el-table-column label="销售公司" align="center" prop="companyName"/>
+      <el-table-column label="企微主体" align="center" prop="corpName"/>
+      <el-table-column label="标题" align="center" prop="welcomeTitle"/>
+      <el-table-column label="消息内容" align="left" prop="welcomeText"  width="400px" >
+        <template slot-scope="scope">
+          <span style="color:rgb(19, 154, 50);" v-if="scope.row.isDayparting==='1'">[共 {{JSON.parse(scope.row.daypartingItemlist).length+1}} 时段]</span>
+          <span style="color:rgb(19, 154, 50);" v-else >[默认时段]</span>
+          <el-tooltip class="item" effect="dark" :content="scope.row.welcomeText" placement="top">
+            <div style="display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; text-overflow: ellipsis;">
+              <span>{{ scope.row.welcomeText }}</span>
+            </div>
+          </el-tooltip>
+        </template>
+      </el-table-column>
+      <el-table-column label="使用成员" align="center" prop="qwUserIds">
+        <template slot-scope="scope">
+          <div v-for="id in JSON.parse(scope.row.qwUserIds)" :key="id" style="display: inline;" class="text-container">
+            <el-tag type="success" v-for="list in companyUserList" :key="list.qwUserId" style="margin: 3px;" v-if="list.id==id">{{list.qwUserName}}</el-tag>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="是否开启分时段" align="center" prop="isDayparting">
+        <template slot-scope="scope">
+          <dict-tag :options="allowSelectOptions" :value="scope.row.isDayparting"></dict-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="是否发送欢迎语" align="center" prop="isSendMsg" >
+        <template slot-scope="scope">
+          <dict-tag :options="allowSelectOptions" :value="scope.row.isSendMsg"></dict-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180"/>
+      <el-table-column label="更新时间" align="center" prop="updateTime" width="180"/>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listFriendWelcome } from '@/api/qw/friendWelcome'
+import { allList } from '@/api/company/company'
+import { getMyQwCompanyList, getQwAllUserList } from '@/api/qw/user'
+
+export default {
+  name: "FriendWelcome",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 企微主体列表
+      myQwCompanyList: [],
+      companyList: [],
+      companyUserList: [],
+      allowSelectOptions: [],
+      friendWelcomeList: [],
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        companyId: null,
+        corpId: null,
+        qwUserIds: [],
+        isDayparting: null,
+        createTime: null,
+        updateTime: null,
+        isSendMsg: null,
+      },
+    }
+  },
+  created() {
+    this.getDicts("sys_qw_allow_select").then(response => {
+      this.allowSelectOptions = response.data;
+    });
+    allList().then(response => {
+      this.companyList = response.rows;
+    });
+    getMyQwCompanyList().then(response => {
+      this.myQwCompanyList = response.data;
+    });
+    this.getList();
+  },
+  methods: {
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.companyUserList = []
+      this.handleQuery();
+    },
+    getList() {
+      this.loading = true;
+      listFriendWelcome(this.queryParams).then(response => {
+        this.friendWelcomeList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    changeCorpOrCompany() {
+      if (this.queryParams.corpId != null && this.queryParams.companyId != null) {
+        const params = {
+          companyId: this.queryParams.companyId,
+          corpId: this.queryParams.corpId
+        }
+        getQwAllUserList(params).then(response => {
+          this.companyUserList = response.data;
+        });
+      }
+    }
+  },
+}
+</script>
+
+<style scoped>
+
+</style>