|
@@ -449,123 +449,89 @@
|
|
AI根据岗位信息生成的能力,创建完步骤后,会自动将选择的新智能能力加入到该职位的考察能力列表中。
|
|
AI根据岗位信息生成的能力,创建完步骤后,会自动将选择的新智能能力加入到该职位的考察能力列表中。
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div class="ability-options">
|
|
|
|
|
|
+ <!-- 推荐的考核维度 -->
|
|
|
|
+ <div class="recommended-dimensions">
|
|
|
|
+ <h3>推荐考核维度</h3>
|
|
|
|
+ <div class="dimension-grid">
|
|
|
|
+ <el-checkbox v-model="aiVideoOptions.positionMatch" label="岗位匹配度">
|
|
|
|
+ <div class="ability-label">
|
|
|
|
+ <span>岗位匹配度</span>
|
|
|
|
+ <img src="../../../assets/sheng.png" alt="" class="sheng">
|
|
|
|
+ </div>
|
|
|
|
+ </el-checkbox>
|
|
|
|
+
|
|
|
|
+ <el-checkbox v-model="aiVideoOptions.proactiveness" label="主动热情">
|
|
|
|
+ <div class="ability-label">
|
|
|
|
+ <span>主动热情</span>
|
|
|
|
+ <img src="../../../assets/sheng.png" alt=""class="sheng">
|
|
|
|
+ </div>
|
|
|
|
+ </el-checkbox>
|
|
|
|
+
|
|
|
|
+ <el-checkbox v-model="aiVideoOptions.basicAbility" label="基础综合能力">
|
|
|
|
+ <div class="ability-label">
|
|
|
|
+ <span>基础综合能力</span>
|
|
|
|
+ <img src="../../../assets/sheng.png" alt=""class="sheng">
|
|
|
|
+ </div>
|
|
|
|
+ </el-checkbox>
|
|
|
|
+
|
|
|
|
+ <el-checkbox v-model="aiVideoOptions.teamwork" label="团队协作">
|
|
|
|
+ <div class="ability-label">
|
|
|
|
+ <span>团队协作</span>
|
|
|
|
+ <img src="../../../assets/sheng.png" alt=""class="sheng">
|
|
|
|
+ </div>
|
|
|
|
+ </el-checkbox>
|
|
|
|
+
|
|
|
|
+ <el-checkbox v-model="aiVideoOptions.communication" label="沟通表达">
|
|
|
|
+ <div class="ability-label">
|
|
|
|
+ <span>沟通表达</span>
|
|
|
|
+ <img src="../../../assets/sheng.png" alt=""class="sheng">
|
|
|
|
+ </div>
|
|
|
|
+ </el-checkbox>
|
|
|
|
+
|
|
|
|
+ <el-checkbox v-model="aiVideoOptions.serviceAwareness" label="服务意识">
|
|
|
|
+ <div class="ability-label">
|
|
|
|
+ <span>服务意识</span>
|
|
|
|
+ <img src="../../../assets/sheng.png" alt=""class="sheng">
|
|
|
|
+ </div>
|
|
|
|
+ </el-checkbox>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.qualityControl" label="质量控制">
|
|
|
|
- <div class="ability-label">质量控制</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.teamwork" label="团队协作">
|
|
|
|
- <div class="ability-label">团队协作</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.problemSolving" label="问题解决">
|
|
|
|
- <div class="ability-label">问题解决</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.dataAnalysis" label="问题分析">
|
|
|
|
- <div class="ability-label">问题分析</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <!-- <el-checkbox v-model="aiVideoOptions.taskManagement" label="分析问题">
|
|
|
|
- <div class="ability-label">分析问题</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.productivity" label="生产效率">
|
|
|
|
- <div class="ability-label">生产效率</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.manufacturingSkills" label="制造制作技能">
|
|
|
|
- <div class="ability-label">制造制作技能</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.customerService" label="客户服务技能">
|
|
|
|
- <div class="ability-label">客户服务技能</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.resistanceToPressure" label="抗压能力-客户服务">
|
|
|
|
- <div class="ability-label">抗压能力-客户服务</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.workDefinition" label="工作稳定-宣誓">
|
|
|
|
- <div class="ability-label">工作稳定-宣誓</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.selfIntroduction" label="自我介绍-宣誓">
|
|
|
|
- <div class="ability-label">自我介绍-宣誓</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.detailOrientation" label="细节关注">
|
|
|
|
- <div class="ability-label">细节关注</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.logicalThinking" label="清晰逻辑思维">
|
|
|
|
- <div class="ability-label">清晰逻辑思维</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.safetyAwareness" label="安全意识">
|
|
|
|
- <div class="ability-label">安全意识</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.customerServiceAwareness" label="客户服务意识">
|
|
|
|
- <div class="ability-label">客户服务意识</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.timeManagement" label="时间管理">
|
|
|
|
- <div class="ability-label">时间管理</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.teamCooperation" label="团队合作">
|
|
|
|
- <div class="ability-label">团队合作</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.timeManagementSkills" label="时间管理能力">
|
|
|
|
- <div class="ability-label">时间管理能力</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.productEvaluation" label="品鉴评估能力">
|
|
|
|
- <div class="ability-label">品鉴评估能力</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.basicQualifications" label="基本素质">
|
|
|
|
- <div class="ability-label">基本素质</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.networkDeployment" label="网位布署">
|
|
|
|
- <div class="ability-label">网位布署</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.remoteCooperation" label="泡通协作">
|
|
|
|
- <div class="ability-label">泡通协作</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.executionAbility" label="执行能力">
|
|
|
|
- <div class="ability-label">执行能力</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.selfDiscipline" label="自驱力">
|
|
|
|
- <div class="ability-label">自驱力</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.managementAbility" label="管理能力">
|
|
|
|
- <div class="ability-label">管理能力</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.customerOrientation" label="客户导向">
|
|
|
|
- <div class="ability-label">客户导向</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.stability" label="稳定性">
|
|
|
|
- <div class="ability-label">稳定性</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.salesSkills" label="销售技巧">
|
|
|
|
- <div class="ability-label">销售技巧</div>
|
|
|
|
- </el-checkbox>
|
|
|
|
-
|
|
|
|
- <el-checkbox v-model="aiVideoOptions.responseAbility" label="应变能力">
|
|
|
|
- <div class="ability-label">应变能力</div>
|
|
|
|
- </el-checkbox> -->
|
|
|
|
|
|
+ <!-- 备选考核维度 -->
|
|
|
|
+ <div class="optional-dimensions">
|
|
|
|
+ <h3>备选考核维度</h3>
|
|
|
|
+ <div class="dimension-grid">
|
|
|
|
+ <el-checkbox v-model="aiVideoOptions.xxxx" label="XXXX">
|
|
|
|
+ <div class="ability-label">
|
|
|
|
+ <span>XXXX</span>
|
|
|
|
+ <!-- <el-tooltip content="考察候选人的XXXX能力" placement="top">
|
|
|
|
+ <el-icon><QuestionFilled /></el-icon>
|
|
|
|
+ </el-tooltip> -->
|
|
|
|
+ </div>
|
|
|
|
+ </el-checkbox>
|
|
|
|
+ <!-- 可以添加更多备选维度 -->
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <!-- 自定义维度 -->
|
|
|
|
+ <div class="custom-dimensions">
|
|
|
|
+ <h3>自定义维度</h3>
|
|
|
|
+ <div class="dimension-form">
|
|
|
|
+ <div class="dimension-row">
|
|
|
|
+ <div class="dimension-input">
|
|
|
|
+ <!-- <div class="input-label">维度名称:</div> -->
|
|
|
|
+ <el-input style="width: 150px;" v-model="customDimension" placeholder="请输入维度名称" />
|
|
|
|
+ </div>
|
|
|
|
+ <div class="dimension-input">
|
|
|
|
+ <div class="input-label">特征描述:</div>
|
|
|
|
+ <el-input v-model="customDescription" style="width: 500px;" type="textarea" placeholder="请输入特征描述" />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="dimension-actions">
|
|
|
|
+ <el-checkbox v-model="continueAdd" label="继续新增" />
|
|
|
|
+ <!-- <el-button type="primary" @click="addDimension">添加</el-button> -->
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -574,13 +540,7 @@
|
|
<div v-if="currentStep === 2" class="ai-video-content">
|
|
<div v-if="currentStep === 2" class="ai-video-content">
|
|
<div class="interview-settings">
|
|
<div class="interview-settings">
|
|
<div class="interview-header">
|
|
<div class="interview-header">
|
|
- <div class="interview-duration">
|
|
|
|
- <span>预计面试时长: </span>
|
|
|
|
- <span class="duration-value">0秒</span>
|
|
|
|
- <span class="duration-tip">拖动试题卡片可改变试题顺序</span>
|
|
|
|
- </div>
|
|
|
|
-
|
|
|
|
- <div class="interview-actions">
|
|
|
|
|
|
+ <div class="interview-actions">
|
|
<el-button type="primary" plain class="import-btn">
|
|
<el-button type="primary" plain class="import-btn">
|
|
<el-icon><Document /></el-icon>
|
|
<el-icon><Document /></el-icon>
|
|
导入题目
|
|
导入题目
|
|
@@ -590,15 +550,20 @@
|
|
自定义题目
|
|
自定义题目
|
|
</el-button>
|
|
</el-button>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="interview-duration">
|
|
|
|
+ <span>预计面试时长: </span>
|
|
|
|
+ <span class="duration-value">0秒</span>
|
|
|
|
+ <span class="duration-tip">拖动试题卡片可改变试题顺序</span>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div class="interview-mode">
|
|
|
|
|
|
+ <!-- <div class="interview-mode">
|
|
<span>面试问答方式: </span>
|
|
<span>面试问答方式: </span>
|
|
<span class="mode-value">传统读题模式</span>
|
|
<span class="mode-value">传统读题模式</span>
|
|
<el-button type="primary" plain size="small" class="customize-btn">定制面试间</el-button>
|
|
<el-button type="primary" plain size="small" class="customize-btn">定制面试间</el-button>
|
|
- </div>
|
|
|
|
-
|
|
|
|
- <div class="interview-questions-container">
|
|
|
|
|
|
+ </div> -->
|
|
|
|
+ <div class="interview-content">
|
|
|
|
+ <div class="interview-questions-container">
|
|
<div class="no-questions">
|
|
<div class="no-questions">
|
|
<p>暂无题目</p>
|
|
<p>暂无题目</p>
|
|
<p class="ai-tip">点击"AI自动组题"按钮</p>
|
|
<p class="ai-tip">点击"AI自动组题"按钮</p>
|
|
@@ -660,20 +625,25 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
-
|
|
|
|
- <div class="multi-dimension-questions">
|
|
|
|
- <div class="dimension-title">多维度能力测评题</div>
|
|
|
|
- <div class="dimension-list">
|
|
|
|
- <div v-for="ability in selectedAbilities" :key="ability.value" class="dimension-item">
|
|
|
|
- <div class="dimension-header">
|
|
|
|
- <span>{{ ability.label }}</span>
|
|
|
|
- <span class="new-tag" v-if="ability.isNew">NEW</span>
|
|
|
|
- <el-icon class="expand-icon"><ArrowDown /></el-icon>
|
|
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="multi-dimension-questions">
|
|
|
|
+ <div class="dimension-title">已选胜任力考核维度</div>
|
|
|
|
+ <div class="dimension-list">
|
|
|
|
+ <div v-for="ability in selectedAbilities" :key="ability.value" class="dimension-item">
|
|
|
|
+ <div class="dimension-header">
|
|
|
|
+ <div class="dimension-info">
|
|
|
|
+ <span class="ability-name">{{ ability.label }}</span>
|
|
|
|
+ <img src="../../../assets/sheng.png" alt=""class="sheng">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="dimension-content">
|
|
|
|
+ <div class="ability-description">{{ "-" }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -1278,7 +1248,7 @@ import { ref, reactive, onMounted, computed } from 'vue';
|
|
import { useRouter, useRoute } from 'vue-router';
|
|
import { useRouter, useRoute } from 'vue-router';
|
|
import { ElMessage, ElMessageBox, ElDrawer } from 'element-plus';
|
|
import { ElMessage, ElMessageBox, ElDrawer } from 'element-plus';
|
|
import * as api from '../list/api';
|
|
import * as api from '../list/api';
|
|
-import { Plus, Document, ArrowDown, Edit, Delete, InfoFilled } from '@element-plus/icons-vue';
|
|
|
|
|
|
+import { Plus, Document, ArrowDown, Edit, Delete, InfoFilled, QuestionFilled } from '@element-plus/icons-vue';
|
|
import { GetList } from '../../questionBank/classList/api';
|
|
import { GetList } from '../../questionBank/classList/api';
|
|
import { GetCompetencyList } from '../list/api';
|
|
import { GetCompetencyList } from '../list/api';
|
|
|
|
|
|
@@ -1372,25 +1342,41 @@ const aiVideoOptions = reactive({
|
|
qualityControl: false,
|
|
qualityControl: false,
|
|
teamwork: false,
|
|
teamwork: false,
|
|
problemSolving: false,
|
|
problemSolving: false,
|
|
- dataAnalysis: false
|
|
|
|
|
|
+ dataAnalysis: false,
|
|
|
|
+ positionMatch: false,
|
|
|
|
+ proactiveness: false,
|
|
|
|
+ basicAbility: false,
|
|
|
|
+ communication: false,
|
|
|
|
+ serviceAwareness: false,
|
|
|
|
+ xxxx: false
|
|
});
|
|
});
|
|
|
|
|
|
// 当前步骤
|
|
// 当前步骤
|
|
const currentStep = ref(1);
|
|
const currentStep = ref(1);
|
|
|
|
|
|
// 选中的能力列表
|
|
// 选中的能力列表
|
|
-const selectedAbilities = computed(() => {
|
|
|
|
- return Object.entries(aiVideoOptions)
|
|
|
|
- .filter(([_, value]) => value)
|
|
|
|
- .map(([key, _]) => {
|
|
|
|
- const label = getAbilityLabel(key);
|
|
|
|
- return {
|
|
|
|
- value: key,
|
|
|
|
- label,
|
|
|
|
- isNew: ['teamwork', 'problemSolving', 'qualityControl'].includes(key)
|
|
|
|
- };
|
|
|
|
- });
|
|
|
|
-});
|
|
|
|
|
|
+const selectedAbilities = ref([
|
|
|
|
+ {
|
|
|
|
+ label: '沟通能力',
|
|
|
|
+ value: 'communication',
|
|
|
|
+ level: 'CC',
|
|
|
|
+ description: '能够清晰、准确地表达想法,善于倾听和理解他人的观点,具备良好的书面和口头表达能力。',
|
|
|
|
+ expanded: false,
|
|
|
|
+ isNew: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '团队协作',
|
|
|
|
+ value: 'teamwork',
|
|
|
|
+ level: 'CC',
|
|
|
|
+ description: '能够与团队成员有效合作,共同完成目标,具备良好的团队精神和协作意识。',
|
|
|
|
+ expanded: false,
|
|
|
|
+ isNew: false
|
|
|
|
+ }
|
|
|
|
+]);
|
|
|
|
+
|
|
|
|
+const toggleAbilityExpand = (ability) => {
|
|
|
|
+ ability.expanded = !ability.expanded;
|
|
|
|
+};
|
|
|
|
|
|
// 获取能力标签
|
|
// 获取能力标签
|
|
const getAbilityLabel = (key: string) => {
|
|
const getAbilityLabel = (key: string) => {
|
|
@@ -2588,6 +2574,23 @@ const saveAIVideoConfig = async () => {
|
|
ElMessage.error('保存失败,请重试');
|
|
ElMessage.error('保存失败,请重试');
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
+
|
|
|
|
+// 在 script setup 部分添加以下响应式变量
|
|
|
|
+const customDimension = ref('');
|
|
|
|
+const customDescription = ref('');
|
|
|
|
+const continueAdd = ref(false);
|
|
|
|
+
|
|
|
|
+// 添加新的维度
|
|
|
|
+const addDimension = () => {
|
|
|
|
+ // 在这里添加添加新维度的逻辑
|
|
|
|
+ console.log('添加新维度:', customDimension.value, customDescription.value);
|
|
|
|
+ // 重置表单
|
|
|
|
+ customDimension.value = '';
|
|
|
|
+ customDescription.value = '';
|
|
|
|
+ continueAdd.value = false;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|
|
@@ -2986,9 +2989,13 @@ const saveAIVideoConfig = async () => {
|
|
|
|
|
|
.interview-header {
|
|
.interview-header {
|
|
display: flex;
|
|
display: flex;
|
|
- justify-content: space-between;
|
|
|
|
- align-items: center;
|
|
|
|
- margin-bottom: 20px;
|
|
|
|
|
|
+ align-items: flex-start;
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+}
|
|
|
|
+.interview-content{
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-around;
|
|
}
|
|
}
|
|
|
|
|
|
.interview-duration {
|
|
.interview-duration {
|
|
@@ -3018,8 +3025,9 @@ const saveAIVideoConfig = async () => {
|
|
}
|
|
}
|
|
|
|
|
|
.interview-questions-container {
|
|
.interview-questions-container {
|
|
|
|
+ width: 85%;
|
|
min-height: 200px;
|
|
min-height: 200px;
|
|
- border: 1px dashed #dcdfe6;
|
|
|
|
|
|
+ /* border: 1px dashed #dcdfe6; */
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
margin-bottom: 20px;
|
|
margin-bottom: 20px;
|
|
display: flex;
|
|
display: flex;
|
|
@@ -3043,6 +3051,7 @@ const saveAIVideoConfig = async () => {
|
|
}
|
|
}
|
|
|
|
|
|
.multi-dimension-questions {
|
|
.multi-dimension-questions {
|
|
|
|
+ width: 30%;
|
|
margin-top: 30px;
|
|
margin-top: 30px;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3060,7 +3069,6 @@ const saveAIVideoConfig = async () => {
|
|
.dimension-item {
|
|
.dimension-item {
|
|
border: 1px solid #dcdfe6;
|
|
border: 1px solid #dcdfe6;
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
- padding: 10px;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
.dimension-header {
|
|
.dimension-header {
|
|
@@ -3869,4 +3877,222 @@ const saveAIVideoConfig = async () => {
|
|
:deep(.el-checkbox) {
|
|
:deep(.el-checkbox) {
|
|
margin-right: 0;
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+.recommended-dimensions,
|
|
|
|
+.optional-dimensions,
|
|
|
|
+.custom-dimensions {
|
|
|
|
+ background: #fff;
|
|
|
|
+ border-radius: 8px;
|
|
|
|
+ padding: 20px;
|
|
|
|
+ margin-bottom: 24px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.recommended-dimensions h3,
|
|
|
|
+.optional-dimensions h3,
|
|
|
|
+.custom-dimensions h3 {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ color: #333;
|
|
|
|
+ margin-bottom: 16px;
|
|
|
|
+ font-weight: 500;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.dimension-grid {
|
|
|
|
+ display: grid;
|
|
|
|
+ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
|
|
|
|
+ gap: 16px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.ability-label {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ gap: 8px;
|
|
|
|
+}
|
|
|
|
+.ability-label .sheng{
|
|
|
|
+ position: absolute;
|
|
|
|
+ right: 0;
|
|
|
|
+ bottom:0;
|
|
|
|
+ width: 30px;
|
|
|
|
+ height: 30px;
|
|
|
|
+}
|
|
|
|
+.ability-label span {
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #333;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.ability-label .el-icon {
|
|
|
|
+ color: #909399;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ cursor: help;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.custom-dimension-input {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ gap: 16px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.custom-dimension-input .el-input {
|
|
|
|
+ width: 100%;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.custom-dimension-input .el-textarea {
|
|
|
|
+ margin-top: 8px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.el-checkbox {
|
|
|
|
+ margin-right: 0;
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
+ padding: 12px;
|
|
|
|
+ border: 1px solid #EBEEF5;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ transition: all 0.3s;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.el-checkbox:hover {
|
|
|
|
+ background: #F5F7FA;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.el-checkbox.is-checked {
|
|
|
|
+ background: #F0F9FF;
|
|
|
|
+ border-color: #409EFF;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.new-feature-tip {
|
|
|
|
+ background: #FFF7E6;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ padding: 12px;
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.new-tag {
|
|
|
|
+ background: #FF9800;
|
|
|
|
+ color: white;
|
|
|
|
+ padding: 2px 6px;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ margin-right: 8px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.dimension-form {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ gap: 16px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.dimension-row {
|
|
|
|
+ display: flex;
|
|
|
|
+ gap: 16px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.dimension-input {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ /* flex: 1; */
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.dimension-actions {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ align-items: center;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.input-label {
|
|
|
|
+ width: 80px;
|
|
|
|
+ font-weight: 500;
|
|
|
|
+ color: #606266;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.multi-dimension-questions {
|
|
|
|
+ padding: 10px;
|
|
|
|
+ background-color: #f2f2f2;
|
|
|
|
+ border-radius: 10px;
|
|
|
|
+ .dimension-title {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ font-weight: 500;
|
|
|
|
+ margin-bottom: 16px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .dimension-list {
|
|
|
|
+ .dimension-item {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ align-items: center;
|
|
|
|
+ background: #fff;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ margin-bottom: 12px;
|
|
|
|
+ position: relative;
|
|
|
|
+ .sheng{
|
|
|
|
+ position: absolute;
|
|
|
|
+ right: 0;
|
|
|
|
+ bottom:0;
|
|
|
|
+ width: 30px;
|
|
|
|
+ height: 30px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .dimension-header {
|
|
|
|
+ padding: 12px 16px;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+
|
|
|
|
+ .dimension-info {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ gap: 8px;
|
|
|
|
+
|
|
|
|
+ .ability-name {
|
|
|
|
+ font-weight: 500;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .new-tag {
|
|
|
|
+ background: #e6f7ff;
|
|
|
|
+ color: #1890ff;
|
|
|
|
+ padding: 2px 6px;
|
|
|
|
+ border-radius: 2px;
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .dimension-level {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ gap: 4px;
|
|
|
|
+
|
|
|
|
+ .level-label {
|
|
|
|
+ color: #606266;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .level-value {
|
|
|
|
+ color: #303133;
|
|
|
|
+ font-weight: 500;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .expand-icon {
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ color: #909399;
|
|
|
|
+ transition: transform 0.3s;
|
|
|
|
+
|
|
|
|
+ &.expanded {
|
|
|
|
+ transform: rotate(180deg);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .dimension-content {
|
|
|
|
+ padding: 0 16px 16px;
|
|
|
|
+ width: 30px;
|
|
|
|
+ .ability-description {
|
|
|
|
+ color: #606266;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ line-height: 1.5;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
</style>
|
|
</style>
|