保存进度!
This commit is contained in:
		
							
								
								
									
										16
									
								
								code/web/task_schedule/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										16
									
								
								code/web/task_schedule/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -20,12 +20,12 @@
 | 
			
		||||
            },
 | 
			
		||||
            "devDependencies": {
 | 
			
		||||
                "@babel/eslint-parser": "^7.22.15",
 | 
			
		||||
                "@rushstack/eslint-patch": "^1.4.0",
 | 
			
		||||
                "@rushstack/eslint-patch": "^1.5.0",
 | 
			
		||||
                "@typescript-eslint/eslint-plugin": "^6.7.3",
 | 
			
		||||
                "@vitejs/plugin-vue": "^4.3.4",
 | 
			
		||||
                "@vue/cli-plugin-eslint": "^5.0.8",
 | 
			
		||||
                "@vue/eslint-config-typescript": "^12.0.0",
 | 
			
		||||
                "axios": "^1.5.0",
 | 
			
		||||
                "axios": "^1.5.1",
 | 
			
		||||
                "babel": "^6.23.0",
 | 
			
		||||
                "eslint-config-recommended": "^4.1.0",
 | 
			
		||||
                "eslint-config-standard-with-typescript": "^39.1.0",
 | 
			
		||||
@@ -1157,9 +1157,9 @@
 | 
			
		||||
            "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@rushstack/eslint-patch": {
 | 
			
		||||
            "version": "1.4.0",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@rushstack/eslint-patch/-/eslint-patch-1.4.0.tgz",
 | 
			
		||||
            "integrity": "sha512-cEjvTPU32OM9lUFegJagO0mRnIn+rbqrG89vV8/xLnLFX0DoR0r1oy5IlTga71Q7uT3Qus7qm7wgeiMT/+Irlg==",
 | 
			
		||||
            "version": "1.5.0",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@rushstack/eslint-patch/-/eslint-patch-1.5.0.tgz",
 | 
			
		||||
            "integrity": "sha512-EF3948ckf3f5uPgYbQ6GhyA56Dmv8yg0+ir+BroRjwdxyZJsekhZzawOecC2rOTPCz173t7ZcR1HHZu0dZgOCw==",
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@sideway/address": {
 | 
			
		||||
@@ -3248,9 +3248,9 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/axios": {
 | 
			
		||||
            "version": "1.5.0",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/axios/-/axios-1.5.0.tgz",
 | 
			
		||||
            "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==",
 | 
			
		||||
            "version": "1.5.1",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/axios/-/axios-1.5.1.tgz",
 | 
			
		||||
            "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "follow-redirects": "^1.15.0",
 | 
			
		||||
 
 | 
			
		||||
@@ -21,12 +21,12 @@
 | 
			
		||||
    },
 | 
			
		||||
    "devDependencies": {
 | 
			
		||||
        "@babel/eslint-parser": "^7.22.15",
 | 
			
		||||
        "@rushstack/eslint-patch": "^1.4.0",
 | 
			
		||||
        "@rushstack/eslint-patch": "^1.5.0",
 | 
			
		||||
        "@typescript-eslint/eslint-plugin": "^6.7.3",
 | 
			
		||||
        "@vitejs/plugin-vue": "^4.3.4",
 | 
			
		||||
        "@vue/cli-plugin-eslint": "^5.0.8",
 | 
			
		||||
        "@vue/eslint-config-typescript": "^12.0.0",
 | 
			
		||||
        "axios": "^1.5.0",
 | 
			
		||||
        "axios": "^1.5.1",
 | 
			
		||||
        "babel": "^6.23.0",
 | 
			
		||||
        "eslint-config-recommended": "^4.1.0",
 | 
			
		||||
        "eslint-config-standard-with-typescript": "^39.1.0",
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-01-04 11:40:03
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2023-03-27 18:19:35
 | 
			
		||||
 * @LastEditTime: 2023-09-27 11:19:05
 | 
			
		||||
 * @FilePath: /it-console/src/layout/components/Main.vue
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
@@ -37,6 +37,6 @@ export default {
 | 
			
		||||
.el-scrollbar {
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    background-color: #ecf2f9;
 | 
			
		||||
    /* background-color: #ecf2f9; */
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -62,13 +62,13 @@ const routes = [
 | 
			
		||||
        component: ()=> import( "../layout/Index.vue" ),
 | 
			
		||||
        children:[
 | 
			
		||||
            {
 | 
			
		||||
                path:"/staff_data",
 | 
			
		||||
                name:"StaffDataManagement",
 | 
			
		||||
                path:"/telsaler_data",
 | 
			
		||||
                name:"TelsalerManagement",
 | 
			
		||||
                meta: {
 | 
			
		||||
                    title:"坐席管理",
 | 
			
		||||
                    icon: "user",
 | 
			
		||||
                },
 | 
			
		||||
                component: ()=> import( "../views/StaffManagement.vue" ),
 | 
			
		||||
                component: ()=> import( "../views/telsaler/TelsalerManagementView.vue" ),
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                path: "/data_management",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								code/web/task_schedule/src/utils/fileUpload.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								code/web/task_schedule/src/utils/fileUpload.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-09-27 14:13:47
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @FilePath: /task_schedule/src/utils/fileUpload.ts
 | 
			
		||||
 * @Description: 文件上传相关
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
interface FileUploadResponse
 | 
			
		||||
{
 | 
			
		||||
    success: boolean;
 | 
			
		||||
    message: string;
 | 
			
		||||
    fileList: string[];
 | 
			
		||||
}
 | 
			
		||||
@@ -260,10 +260,12 @@ export default {
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                ElMessage({
 | 
			
		||||
                ElMessageBox({
 | 
			
		||||
                    message: response.message,
 | 
			
		||||
                    type: "error",
 | 
			
		||||
                });
 | 
			
		||||
                })
 | 
			
		||||
                    .then(() => {})
 | 
			
		||||
                    .catch(() => {});
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            refresh();
 | 
			
		||||
 
 | 
			
		||||
@@ -26,13 +26,6 @@
 | 
			
		||||
                <el-button type="primary">
 | 
			
		||||
                    上传
 | 
			
		||||
                </el-button>
 | 
			
		||||
                <el-button
 | 
			
		||||
                    type="error"
 | 
			
		||||
                    icon="refresh"
 | 
			
		||||
                    @click="return;"
 | 
			
		||||
                >
 | 
			
		||||
                    清除
 | 
			
		||||
                </el-button>
 | 
			
		||||
                <template #tip>
 | 
			
		||||
                    <div class="el-upload__tip">
 | 
			
		||||
                        文件不能大于100MB。
 | 
			
		||||
 
 | 
			
		||||
@@ -61,17 +61,13 @@ import { ElMessage, ElMessageBox } from "element-plus";
 | 
			
		||||
import {
 | 
			
		||||
    type RewardProject,
 | 
			
		||||
    type RewardProjectResponse,
 | 
			
		||||
    type RewardGainerResponse,
 | 
			
		||||
    type DeleteRewardTelsalerRequest,
 | 
			
		||||
    type DeleteRewardTelsalerResponse,
 | 
			
		||||
    type AddRewardTelsalerRequest,
 | 
			
		||||
    type AddRewardTelsalerResponse,
 | 
			
		||||
    type UpdateRewardTelsalerRequest,
 | 
			
		||||
    type UpdateRewardTelsalerResponse,
 | 
			
		||||
    requestRewardPorjectsList,
 | 
			
		||||
    addRewardTelsaler,
 | 
			
		||||
    updateTelsalerReward,
 | 
			
		||||
    deleteRewardTelsaler
 | 
			
		||||
    updateTelsalerReward
 | 
			
		||||
} from "@/utils/reward.js";
 | 
			
		||||
import eventBus from "@/utils/api/EventBus.js";
 | 
			
		||||
 | 
			
		||||
@@ -131,13 +127,9 @@ export default {
 | 
			
		||||
                    .then((): void => {})
 | 
			
		||||
                    .catch((): void => {});
 | 
			
		||||
 | 
			
		||||
                console.log( "请求奖励项目失败:", error );
 | 
			
		||||
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            console.log( "请求奖励项目结果", response.rewardList );
 | 
			
		||||
 | 
			
		||||
            ui.rewardProjectList = response.rewardList;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
@@ -153,8 +145,6 @@ export default {
 | 
			
		||||
            ui.selectedRecID = props.selectedRecId;
 | 
			
		||||
 | 
			
		||||
            refresh();
 | 
			
		||||
 | 
			
		||||
            console.log( props.selectedRewardProjectCode );
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        const onSaveRewardTelsaler = (): void =>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-03-23 16:05:08
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @FilePath: /task_schedule/src/views/StaffManagement.vue
 | 
			
		||||
 * @FilePath: /task_schedule/src/views/telsaler/TelsalerManagement.vue
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
@@ -107,7 +107,7 @@
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import { reactive, computed } from "vue";
 | 
			
		||||
export default {
 | 
			
		||||
    name: "StaffManagement",
 | 
			
		||||
    name: "TelsalerManagement",
 | 
			
		||||
    setup()
 | 
			
		||||
    {
 | 
			
		||||
        const ui = reactive({
 | 
			
		||||
@@ -150,16 +150,9 @@ export default {
 | 
			
		||||
@import "@/assets/css/public/_public.scss";
 | 
			
		||||
 | 
			
		||||
.wrapper {
 | 
			
		||||
    margin: 10px;
 | 
			
		||||
    padding: 10px;
 | 
			
		||||
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    border-radius: 5px;
 | 
			
		||||
    box-shadow: $box-shadow;
 | 
			
		||||
 | 
			
		||||
    &:hover {
 | 
			
		||||
        box-shadow: $box-shadow-hover;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    min-width: 800px;
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,69 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2023-09-27 10:13:31
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @FilePath: /task_schedule/src/views/telsaler/TelsalerManagementView.vue
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
    <div
 | 
			
		||||
        v-if="ui.showUI"
 | 
			
		||||
        class="telsaler-management-view-wrapper"
 | 
			
		||||
    >
 | 
			
		||||
        <el-tabs type="border-card">
 | 
			
		||||
            <el-tab-pane>
 | 
			
		||||
                <template #label>
 | 
			
		||||
                    <el-icon><User /></el-icon>
 | 
			
		||||
                    <span>坐席管理</span>
 | 
			
		||||
                </template>
 | 
			
		||||
                <TelsalerManagement />
 | 
			
		||||
            </el-tab-pane>
 | 
			
		||||
            <el-tab-pane>
 | 
			
		||||
                <template #label>
 | 
			
		||||
                    <el-icon><Document /></el-icon>
 | 
			
		||||
                    <span>导入导出</span>
 | 
			
		||||
                </template>
 | 
			
		||||
                导入导出
 | 
			
		||||
            </el-tab-pane>
 | 
			
		||||
        </el-tabs>
 | 
			
		||||
    </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import { ref, reactive } from "vue";
 | 
			
		||||
// import { User } from "@element-plus/icons-vue";
 | 
			
		||||
 | 
			
		||||
import TelsalerManagement from "@/views/telsaler/TelsalerManagement.vue";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    name: "TelsalerManagementView",
 | 
			
		||||
    components: { TelsalerManagement, },
 | 
			
		||||
    setup()
 | 
			
		||||
    {
 | 
			
		||||
        const ui = reactive({
 | 
			
		||||
            showUI: true,
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            ui,
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
.telsaler-management-view-wrapper {
 | 
			
		||||
    margin: 10px 10px;
 | 
			
		||||
 | 
			
		||||
    min-width: 800px;
 | 
			
		||||
 | 
			
		||||
    >*+* {
 | 
			
		||||
        margin-top: 10px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
        margin-left: 4px;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
		Reference in New Issue
	
	Block a user