|
@@ -1,210 +1,245 @@
|
|
<template>
|
|
<template>
|
|
- <div class="all boxMinHeight">
|
|
|
|
- <div class="flex-box ts flex-center-center" v-if="isSubject">
|
|
|
|
- <img mode="scaleToFill" src="@/assets/image/tz.png" />
|
|
|
|
- <div class="flex-1">你正在使用个人体验版,如需正式使用,请联系管理员</div>
|
|
|
|
- <div class="btn" type="primary" @click="openGly">联系管理员</div>
|
|
|
|
|
|
+ <div>
|
|
|
|
+ <div v-if="$getRole(1)&&userInfo.is_only_try_order" @click="dialogVisible = true" :style="{ backgroundImage: 'url(' + loginBg + ')' }" style="position: relative;margin-bottom: 10px;height: 77px;" class="headerImg">
|
|
|
|
+ <div style="position: absolute;width: 440px;font-size: 26px;color: #fff;font-weight: 600;top: 20px;text-align: center;left: 50%;margin-left: -220px;">
|
|
|
|
+ 免费预约演示 获取行业绩效管理方案
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <div>
|
|
|
|
- <div class="left-main" v-if="$getRole(1)">
|
|
|
|
- <div class="flex-box-ce" v-if="entranceList.length > 0">
|
|
|
|
- <div class="entrance flex-box-ce" v-for="(item, index) in entranceList" :key="index" @click="openUrl(item)">
|
|
|
|
- <img :src="item.image" />
|
|
|
|
- <span>{{ item.name }}</span>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div v-else><div style="text-align: center;margin: 020px;" class="fontColorF">暂无相关权限</div></div>
|
|
|
|
|
|
+ <div class="all boxMinHeight">
|
|
|
|
+ <div class="flex-box ts flex-center-center" v-if="isSubject">
|
|
|
|
+ <img src="@/assets/image/tz.png" />
|
|
|
|
+ <div class="flex-1">你正在使用个人体验版,如需正式使用,请联系管理员</div>
|
|
|
|
+ <div class="btn" type="primary" @click="openGly">联系管理员</div>
|
|
</div>
|
|
</div>
|
|
- <!-- 待办 -->
|
|
|
|
- <div class="flex-box">
|
|
|
|
- <div class="flex-1 dispose-left">
|
|
|
|
- <div class="more2" v-if="agencyList.length > 0">
|
|
|
|
- <span @click="$router.push({ name: 'backlog', query: { activeName: activeName } })">
|
|
|
|
- 查看更多
|
|
|
|
- <i class="el-icon-d-arrow-right"></i>
|
|
|
|
- </span>
|
|
|
|
|
|
+ <div>
|
|
|
|
+ <div class="left-main" v-if="$getRole(1)">
|
|
|
|
+ <div class="flex-box-ce" v-if="entranceList.length > 0">
|
|
|
|
+ <div class="entrance flex-box-ce" v-for="(item, index) in entranceList" :key="index" @click="openUrl(item)">
|
|
|
|
+ <img :src="item.image" />
|
|
|
|
+ <span>{{ item.name }}</span>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <el-tabs v-model="activeName" class="tabs">
|
|
|
|
- <el-tab-pane :title="tab.title" :name="tab.name" :key="tab.name" v-for="(tab, index) in editableTabs" v-loading="loading">
|
|
|
|
- <span slot="label" v-if="tab.num > 0">
|
|
|
|
- <el-badge :value="tab.num" :max="999">
|
|
|
|
- <span>{{ tab.title }}</span>
|
|
|
|
- </el-badge>
|
|
|
|
- </span>
|
|
|
|
- <span slot="label" v-else>
|
|
|
|
- <div style="position: relative;vertical-align: middle;display: inline-block;">
|
|
|
|
- <span>{{ tab.title }}</span>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <div v-else><div style="text-align: center;margin: 020px;" class="fontColorF">暂无相关权限</div></div>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 待办 -->
|
|
|
|
+ <div class="flex-box">
|
|
|
|
+ <div class="flex-1 dispose-left">
|
|
|
|
+ <div class="more2" v-if="agencyList.length > 0">
|
|
|
|
+ <span @click="$router.push({ name: 'backlog', query: { activeName: activeName } })">
|
|
|
|
+ 查看更多
|
|
|
|
+ <i class="el-icon-d-arrow-right"></i>
|
|
</span>
|
|
</span>
|
|
- <template v-if="agencyList.length > 0">
|
|
|
|
- <div class="flex-box-ce item" v-for="(item, index) in agencyList" :key="index" @click="openDetail(1, item)">
|
|
|
|
- <template v-if="item.userInfo">
|
|
|
|
- <userImage :img_url="item.userInfo.img_url" :user_name="item.userInfo.name" fontSize="14" width="40px" height="40px"></userImage>
|
|
|
|
- </template>
|
|
|
|
- <div class="flex-1 font-flex-word content">
|
|
|
|
- <div style="max-width: 700px;" class="font-flex-word">{{ item.content }}</div>
|
|
|
|
|
|
+ </div>
|
|
|
|
+ <el-tabs v-model="activeName" class="tabs">
|
|
|
|
+ <el-tab-pane :title="tab.title" :name="tab.name" :key="tab.name" v-for="(tab, index) in editableTabs" v-loading="loading">
|
|
|
|
+ <span slot="label" v-if="tab.num > 0">
|
|
|
|
+ <el-badge :value="tab.num" :max="999">
|
|
|
|
+ <span>{{ tab.title }}</span>
|
|
|
|
+ </el-badge>
|
|
|
|
+ </span>
|
|
|
|
+ <span slot="label" v-else>
|
|
|
|
+ <div style="position: relative;vertical-align: middle;display: inline-block;">
|
|
|
|
+ <span>{{ tab.title }}</span>
|
|
</div>
|
|
</div>
|
|
- <div class="fontColorB">{{ $moment(item.update_time).format('YYYY-MM-DD HH:mm') }}</div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <NoData v-else content="暂无内容" :isSolt="true">
|
|
|
|
- <div class="fontColorF" style="text-align: center;">
|
|
|
|
- 暂无内容,
|
|
|
|
- <span class="blue" style="cursor: pointer;" @click="$router.push({ name: 'backlog', query: { selectIndex: 1 } })">去查看已处理的</span>
|
|
|
|
- </div>
|
|
|
|
- </NoData>
|
|
|
|
- </el-tab-pane>
|
|
|
|
- </el-tabs>
|
|
|
|
- </div>
|
|
|
|
- <div style="width: 300px;margin-left: 10px;padding: 20px 10px;" class="dispose-left">
|
|
|
|
- <div class="more2">
|
|
|
|
- <span @click="$router.push({ name: 'unread' })">
|
|
|
|
- 查看更多
|
|
|
|
- <i class="el-icon-d-arrow-right"></i>
|
|
|
|
- </span>
|
|
|
|
|
|
+ </span>
|
|
|
|
+ <template v-if="agencyList.length > 0">
|
|
|
|
+ <div class="flex-box-ce item" v-for="(item, index) in agencyList" :key="index" @click="openDetail(1, item)">
|
|
|
|
+ <template v-if="item.userInfo">
|
|
|
|
+ <userImage :img_url="item.userInfo.img_url" :user_name="item.userInfo.name" fontSize="14" width="40px" height="40px"></userImage>
|
|
|
|
+ </template>
|
|
|
|
+ <div class="flex-1 font-flex-word content">
|
|
|
|
+ <div style="max-width: 700px;" class="font-flex-word">{{ item.content }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="fontColorB">{{ $moment(item.update_time).format('YYYY-MM-DD HH:mm') }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <NoData v-else content="暂无内容" :isSolt="true">
|
|
|
|
+ <div class="fontColorF" style="text-align: center;">
|
|
|
|
+ 暂无内容,
|
|
|
|
+ <span class="blue" style="cursor: pointer;" @click="$router.push({ name: 'backlog', query: { selectIndex: 1 } })">去查看已处理的</span>
|
|
|
|
+ </div>
|
|
|
|
+ </NoData>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ </el-tabs>
|
|
</div>
|
|
</div>
|
|
- <div style="border-bottom: 1px solid #f1f1f1;margin-bottom: 15px;">
|
|
|
|
- <el-badge :value="messageNum" :max="999" v-if="messageNum > 0">
|
|
|
|
- <div class="message-title">
|
|
|
|
|
|
+ <div style="width: 300px;margin-left: 10px;padding: 20px 10px;" class="dispose-left">
|
|
|
|
+ <div class="more2">
|
|
|
|
+ <span @click="$router.push({ name: 'unread' })">
|
|
|
|
+ 查看更多
|
|
|
|
+ <i class="el-icon-d-arrow-right"></i>
|
|
|
|
+ </span>
|
|
|
|
+ </div>
|
|
|
|
+ <div style="border-bottom: 1px solid #f1f1f1;margin-bottom: 15px;">
|
|
|
|
+ <el-badge :value="messageNum" :max="999" v-if="messageNum > 0">
|
|
|
|
+ <div class="message-title">
|
|
|
|
+ <svg-icon icon-class="unread"></svg-icon>
|
|
|
|
+ 未读消息
|
|
|
|
+ </div>
|
|
|
|
+ </el-badge>
|
|
|
|
+ <div class="message-title" v-else>
|
|
<svg-icon icon-class="unread"></svg-icon>
|
|
<svg-icon icon-class="unread"></svg-icon>
|
|
未读消息
|
|
未读消息
|
|
</div>
|
|
</div>
|
|
- </el-badge>
|
|
|
|
- <div class="message-title" v-else>
|
|
|
|
- <svg-icon icon-class="unread"></svg-icon>
|
|
|
|
- 未读消息
|
|
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- <template v-if="messageList.length > 0">
|
|
|
|
- <div class="item" v-for="(item, index) in messageList" :key="index" @click="openDetail(2, item)">
|
|
|
|
- <div class="flex-box" v-if="item.type == 4">
|
|
|
|
- <div style="width: 25px;padding-top: 6px;"><svg-icon icon-class="message-download"></svg-icon></div>
|
|
|
|
- <span class="message-content flex-1">{{ item.content }}</span>
|
|
|
|
|
|
+ <template v-if="messageList.length > 0">
|
|
|
|
+ <div class="item" v-for="(item, index) in messageList" :key="index" @click="openDetail(2, item)">
|
|
|
|
+ <div class="flex-box" v-if="item.type == 4">
|
|
|
|
+ <div style="width: 25px;padding-top: 6px;"><svg-icon icon-class="message-download"></svg-icon></div>
|
|
|
|
+ <span class="message-content flex-1">{{ item.content }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="flex-box" v-else>
|
|
|
|
+ <div style="width: 25px;padding-top: 6px;"><svg-icon icon-class="inform"></svg-icon></div>
|
|
|
|
+ <span class="message-content flex-1">{{ item.content }}</span>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <div class="flex-box" v-else>
|
|
|
|
- <div style="width: 25px;padding-top: 6px;"><svg-icon icon-class="inform"></svg-icon></div>
|
|
|
|
- <span class="message-content flex-1">{{ item.content }}</span>
|
|
|
|
|
|
+ </template>
|
|
|
|
+ <NoData v-else content="暂无内容" :isSolt="true">
|
|
|
|
+ <div class="fontColorF" style="text-align: center;">
|
|
|
|
+ 暂无内容,
|
|
|
|
+ <span class="blue" style="cursor: pointer;" @click="$router.push({ name: 'unread', query: { selectIndex: 1 } })">去查看已读的</span>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <NoData v-else content="暂无内容" :isSolt="true">
|
|
|
|
- <div class="fontColorF" style="text-align: center;">
|
|
|
|
- 暂无内容,
|
|
|
|
- <span class="blue" style="cursor: pointer;" @click="$router.push({ name: 'unread', query: { selectIndex: 1 } })">去查看已读的</span>
|
|
|
|
- </div>
|
|
|
|
- </NoData>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <!-- 管理 -->
|
|
|
|
- <div class="gl-all" v-loading="staffLoad">
|
|
|
|
- <div class="flex-box" style="margin-bottom: 20px;">
|
|
|
|
- <el-cascader
|
|
|
|
- v-model="headValue"
|
|
|
|
- :options="options"
|
|
|
|
- :show-all-levels="false"
|
|
|
|
- :props="{ expandTrigger: 'hover', label: 'name', value: 'id', children: 'list' }"
|
|
|
|
- ></el-cascader>
|
|
|
|
- <div style="margin-left:10px;width:200px;"><JxSearch :screen="2" title="请输入姓名搜索" @confirm="searchList"></JxSearch></div>
|
|
|
|
|
|
+ </NoData>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <el-tabs v-model="glIndex">
|
|
|
|
- <el-tab-pane :label="item.title" :name="item.name" v-for="(item, index) in glIist" :key="index">
|
|
|
|
- <el-table stripe :data="glDataList" v-loading="glLoading" :header-cell-style="{ background: '#EDF4FF' }">
|
|
|
|
- <el-table-column prop="name" label="被考核人">
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <div class="flex-box-ce">
|
|
|
|
- <userImage
|
|
|
|
- :id="scope.row.userInfo.id"
|
|
|
|
- :user_name="scope.row.userInfo.name"
|
|
|
|
- :img_url="scope.row.userInfo.img_url"
|
|
|
|
- width="35px"
|
|
|
|
- height="35px"
|
|
|
|
- fontSize="12px"
|
|
|
|
- ></userImage>
|
|
|
|
- <span style="margin-left: 10px; line-height: 50px;">{{ scope.row.userInfo.name }}</span>
|
|
|
|
- <span style="margin-left: 10px; line-height: 50px;" class="yellow" v-if="scope.row.has_finish">已归档</span>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="name" label="部门">
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <div v-if="scope.row.dept_list.length > 0">
|
|
|
|
- <span v-for="(item, index) in scope.row.dept_list" :key="index">
|
|
|
|
- {{ item.name }}
|
|
|
|
- <span v-if="scope.row.dept_list.length - index > 1">,</span>
|
|
|
|
- </span>
|
|
|
|
- </div>
|
|
|
|
- <span v-else>--</span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="package_name" label="考核时段"></el-table-column>
|
|
|
|
- <el-table-column prop="name" label="管理记录" v-if="glIndex == '1'">
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <span v-if="scope.row.count_record == 0" class="fontColorB">无管理记录</span>
|
|
|
|
- <span v-else class="blue" style="cursor: pointer;" @click="openTx(scope.row)">{{ scope.row.count_record }}条管理记录</span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="name" label="执行计划" v-if="glIndex == '1'">
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <template v-if="scope.row.action_update">
|
|
|
|
- <div v-if="returnStr(scope.row.action_update).indexOf('今天') >= 0" class="actionText yellow">{{ returnStr(scope.row.action_update) }}</div>
|
|
|
|
- <div v-else-if="returnStr(scope.row.action_update).indexOf('昨天') >= 0" class="actionText green">
|
|
|
|
- {{ returnStr(scope.row.action_update) }}
|
|
|
|
|
|
+ <!-- 管理 -->
|
|
|
|
+ <div class="gl-all" v-loading="staffLoad">
|
|
|
|
+ <div class="flex-box" style="margin-bottom: 20px;">
|
|
|
|
+ <el-cascader
|
|
|
|
+ v-model="headValue"
|
|
|
|
+ :options="options"
|
|
|
|
+ :show-all-levels="false"
|
|
|
|
+ :props="{ expandTrigger: 'hover', label: 'name', value: 'id', children: 'list' }"
|
|
|
|
+ ></el-cascader>
|
|
|
|
+ <div style="margin-left:10px;width:200px;"><JxSearch :screen="2" title="请输入姓名搜索" @confirm="searchList"></JxSearch></div>
|
|
|
|
+ </div>
|
|
|
|
+ <el-tabs v-model="glIndex">
|
|
|
|
+ <el-tab-pane :label="item.title" :name="item.name" v-for="(item, index) in glIist" :key="index">
|
|
|
|
+ <el-table stripe :data="glDataList" v-loading="glLoading" :header-cell-style="{ background: '#EDF4FF' }">
|
|
|
|
+ <el-table-column prop="name" label="被考核人">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div class="flex-box-ce">
|
|
|
|
+ <userImage
|
|
|
|
+ :id="scope.row.userInfo.id"
|
|
|
|
+ :user_name="scope.row.userInfo.name"
|
|
|
|
+ :img_url="scope.row.userInfo.img_url"
|
|
|
|
+ width="35px"
|
|
|
|
+ height="35px"
|
|
|
|
+ fontSize="12px"
|
|
|
|
+ ></userImage>
|
|
|
|
+ <span style="margin-left: 10px; line-height: 50px;">{{ scope.row.userInfo.name }}</span>
|
|
|
|
+ <span style="margin-left: 10px; line-height: 50px;" class="yellow" v-if="scope.row.has_finish">已归档</span>
|
|
</div>
|
|
</div>
|
|
- <div v-else class="actionText">{{ returnStr(scope.row.action_update) }}</div>
|
|
|
|
</template>
|
|
</template>
|
|
- <div></div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="status" label="评分进度" v-else>
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <span v-if="scope.row.status == 0" class="yellow">未到评分节点</span>
|
|
|
|
- <span v-if="scope.row.status == 1" class="blue">待我评分</span>
|
|
|
|
- <span v-if="scope.row.status == 2" class="green">我已评分</span>
|
|
|
|
- <span v-if="scope.row.status == 3" class="green">已被其他管理评分</span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="score_info" label="评分" v-if="glIndex == '2'">
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <div v-if="scope.row.score_info.length > 0">
|
|
|
|
- <div v-for="(item, index) in returnPoint(scope.row)" :key="index">
|
|
|
|
- <div style="margin-top: 5px;" v-if="item.pointList.length > 0">
|
|
|
|
- {{ item.name }}:
|
|
|
|
- <span class="blue">{{ item.pointList.toString() }}</span>
|
|
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="name" label="部门">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div v-if="scope.row.dept_list.length > 0">
|
|
|
|
+ <span v-for="(item, index) in scope.row.dept_list" :key="index">
|
|
|
|
+ {{ item.name }}
|
|
|
|
+ <span v-if="scope.row.dept_list.length - index > 1">,</span>
|
|
|
|
+ </span>
|
|
|
|
+ </div>
|
|
|
|
+ <span v-else>--</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="package_name" label="考核时段"></el-table-column>
|
|
|
|
+ <el-table-column prop="name" label="管理记录" v-if="glIndex == '1'">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span v-if="scope.row.count_record == 0" class="fontColorB">无管理记录</span>
|
|
|
|
+ <span v-else class="blue" style="cursor: pointer;" @click="openTx(scope.row)">{{ scope.row.count_record }}条管理记录</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="name" label="执行计划" v-if="glIndex == '1'">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <template v-if="scope.row.action_update">
|
|
|
|
+ <div v-if="returnStr(scope.row.action_update).indexOf('今天') >= 0" class="actionText yellow">
|
|
|
|
+ {{ returnStr(scope.row.action_update) }}
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="returnStr(scope.row.action_update).indexOf('昨天') >= 0" class="actionText green">
|
|
|
|
+ {{ returnStr(scope.row.action_update) }}
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else class="actionText">{{ returnStr(scope.row.action_update) }}</div>
|
|
|
|
+ </template>
|
|
|
|
+ <div></div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="status" label="评分进度" v-else>
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span v-if="scope.row.status == 0" class="yellow">未到评分节点</span>
|
|
|
|
+ <span v-if="scope.row.status == 1" class="blue">待我评分</span>
|
|
|
|
+ <span v-if="scope.row.status == 2" class="green">我已评分</span>
|
|
|
|
+ <span v-if="scope.row.status == 3" class="green">已被其他管理评分</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="score_info" label="评分" v-if="glIndex == '2'">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div v-if="scope.row.score_info.length > 0">
|
|
|
|
+ <div v-for="(item, index) in returnPoint(scope.row)" :key="index">
|
|
|
|
+ <div style="margin-top: 5px;" v-if="item.pointList.length > 0">
|
|
|
|
+ {{ item.name }}:
|
|
|
|
+ <span class="blue">{{ item.pointList.toString() }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else>--</div>
|
|
</div>
|
|
</div>
|
|
- <div v-else>--</div>
|
|
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- <div v-else>--</div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column label="操作">
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <el-button @click="openTx(scope.row)" type="text" v-if="glIndex == '1' && !scope.row.has_finish">填写管理记录</el-button>
|
|
|
|
- <el-button @click="openDetail2(scope.row)" type="text">查看详情</el-button>
|
|
|
|
- <el-button @click="openDetail2(scope.row)" type="text" v-if="glIndex == '2' && scope.row.status == 1">去评分</el-button>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
- <div class="more">
|
|
|
|
- <span @click="$router.push({ name: glIndex == 1 ? 'management' : 'score', query: { headValue: JSON.stringify(headValue) } })">
|
|
|
|
- 查看更多
|
|
|
|
- <i class="el-icon-d-arrow-right"></i>
|
|
|
|
- </span>
|
|
|
|
- </div>
|
|
|
|
- </el-tab-pane>
|
|
|
|
- </el-tabs>
|
|
|
|
|
|
+ <div v-else>--</div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="操作">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <el-button @click="openTx(scope.row)" type="text" v-if="glIndex == '1' && !scope.row.has_finish">填写管理记录</el-button>
|
|
|
|
+ <el-button @click="openDetail2(scope.row)" type="text">查看详情</el-button>
|
|
|
|
+ <el-button @click="openDetail2(scope.row)" type="text" v-if="glIndex == '2' && scope.row.status == 1">去评分</el-button>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ <div class="more">
|
|
|
|
+ <span @click="$router.push({ name: glIndex == 1 ? 'management' : 'score', query: { headValue: JSON.stringify(headValue) } })">
|
|
|
|
+ 查看更多
|
|
|
|
+ <i class="el-icon-d-arrow-right"></i>
|
|
|
|
+ </span>
|
|
|
|
+ </div>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ </el-tabs>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- 跟踪管理 -->
|
|
|
|
+ <TrackManagement
|
|
|
|
+ :showDrawer.sync="isTrack"
|
|
|
|
+ :isCz="has_finish ? true : false"
|
|
|
|
+ :id="employeeID"
|
|
|
|
+ :apList="apList"
|
|
|
|
+ :recordMemberIds="recordMemberIds"
|
|
|
|
+ :assessId="employee_id"
|
|
|
|
+ @confirm="getManagement"
|
|
|
|
+ ></TrackManagement>
|
|
|
|
+
|
|
|
|
+ <el-dialog class="dialog" :show-close="false" :visible.sync="dialogVisible" width="400px" >
|
|
|
|
+ <div style="height: 80px;background-image: linear-gradient(180deg, #01A2FE 0%, #0067FF 100%);
|
|
|
|
+ border-top-left-radius: 25px;border-top-right-radius: 25px;padding-top: 20px;">
|
|
|
|
+ <div style="font-weight: 600;font-size: 24px;color: #fff;text-align: center;">预约演示功道云绩效</div>
|
|
|
|
+ <div style="font-weight: 600;font-size: 24px;color: #fff;text-align: center;">绩效专家一对一服务</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div style="position: absolute;right: 16px;top: 16px;cursor: pointer;" @click="dialogVisible = false"><i class="el-icon-close" style="font-size:20px;color: #fff;"></i></div>
|
|
|
|
+ <div>
|
|
|
|
+ <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="60px" style="width: 260px;margin: 20px auto;position: relative;right: 20px;">
|
|
|
|
+ <el-form-item label="公司">
|
|
|
|
+ <el-input v-model="userInfo.site.name" disabled></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="姓名" prop="name">
|
|
|
|
+ <el-input v-model="ruleForm.name"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="手机" prop="mobile">
|
|
|
|
+ <el-input v-model="ruleForm.mobile" @input="ruleForm.mobile=ruleForm.mobile.replace(/[^\d]/g,'')" ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="fa">预约赠送绩效考核方案</div>
|
|
|
|
+ <div style="text-align: center;padding: 20px 0;">
|
|
|
|
+ <el-button style="border-radius: 25px;font-size: 16px;padding:7px 20px;" size="mini" type="primary" @click="submitForm('ruleForm')">立即申请</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
- <!-- 跟踪管理 -->
|
|
|
|
- <TrackManagement
|
|
|
|
- :showDrawer.sync="isTrack"
|
|
|
|
- :isCz="has_finish ? true : false"
|
|
|
|
- :id="employeeID"
|
|
|
|
- :apList="apList"
|
|
|
|
- :recordMemberIds="recordMemberIds"
|
|
|
|
- :assessId="employee_id"
|
|
|
|
- @confirm="getManagement"
|
|
|
|
- ></TrackManagement>
|
|
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -218,6 +253,17 @@ export default {
|
|
components: { JxSearch, TrackManagement },
|
|
components: { JxSearch, TrackManagement },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ userInfo: this.$getUserData(),
|
|
|
|
+ ruleForm: {
|
|
|
|
+ name: '',
|
|
|
|
+ mobile: '',
|
|
|
|
+ },
|
|
|
|
+ rules: {
|
|
|
|
+ name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
|
|
|
|
+ mobile: [{ required: true, trigger: 'blur', message: '请输入手机号' }],
|
|
|
|
+ },
|
|
|
|
+ loginBg: require('@/assets/image/bj.jpg'),
|
|
|
|
+ dialogVisible: false,
|
|
isSubject: false, //判断是否是个人版进入
|
|
isSubject: false, //判断是否是个人版进入
|
|
mainCorpId: '', //如果是个人版,这个企业ID是登录者所在的企业ID,不是钉钉那边提供的隐藏企业ID
|
|
mainCorpId: '', //如果是个人版,这个企业ID是登录者所在的企业ID,不是钉钉那边提供的隐藏企业ID
|
|
day: this.$moment().format('YYYY-MM-DD'),
|
|
day: this.$moment().format('YYYY-MM-DD'),
|
|
@@ -229,7 +275,6 @@ export default {
|
|
{ title: '评分', name: '5', num: 0 },
|
|
{ title: '评分', name: '5', num: 0 },
|
|
{ title: '审批', name: '9', num: 0 }
|
|
{ title: '审批', name: '9', num: 0 }
|
|
],
|
|
],
|
|
- userInfo: this.$getUserData(),
|
|
|
|
entranceList: [],
|
|
entranceList: [],
|
|
agencyList: [], //待办列表
|
|
agencyList: [], //待办列表
|
|
agencyNum: 0,
|
|
agencyNum: 0,
|
|
@@ -299,6 +344,14 @@ export default {
|
|
this.getAgencyNum();
|
|
this.getAgencyNum();
|
|
this.getAgency();
|
|
this.getAgency();
|
|
},
|
|
},
|
|
|
|
+ dialogVisible(val) {
|
|
|
|
+ if(!val){
|
|
|
|
+ this.ruleForm={
|
|
|
|
+ name: '',
|
|
|
|
+ mobile: '',
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ },
|
|
glIndex(val) {
|
|
glIndex(val) {
|
|
this.glDataList = [];
|
|
this.glDataList = [];
|
|
if (this.headValue.length != 0) {
|
|
if (this.headValue.length != 0) {
|
|
@@ -311,6 +364,28 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ submitForm(formName) {
|
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (!/^1[0123456789]\d{9}$/.test( this.ruleForm.mobile)) {
|
|
|
|
+ this.$message.error('手机格式有误');
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ this.$axios('post', '/api/employee/appointment', this.ruleForm).then(res => {
|
|
|
|
+ this.$message.success('提交成功,我们的绩效老师将在24小时内与您联系');
|
|
|
|
+ }).finally(() => {
|
|
|
|
+ this.dialogVisible = false;
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ console.log('error submit!!');
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
openGly() {
|
|
openGly() {
|
|
contactAdminToUseApp({ id: '109758', corpId: this.mainCorpId }).catch(err => {
|
|
contactAdminToUseApp({ id: '109758', corpId: this.mainCorpId }).catch(err => {
|
|
// 入参不正确,或者遇到技术异常时才会进入这个链路
|
|
// 入参不正确,或者遇到技术异常时才会进入这个链路
|
|
@@ -641,7 +716,7 @@ export default {
|
|
},
|
|
},
|
|
setMenu() {
|
|
setMenu() {
|
|
let entranceList = [];
|
|
let entranceList = [];
|
|
- if (this.$isAuthoritys([this.$7, this.$8, this.$9, this.$10, this.$11,this.$17,this.$18])) {
|
|
|
|
|
|
+ if (this.$isAuthoritys([this.$7, this.$8, this.$9, this.$10, this.$11, this.$17, this.$18])) {
|
|
entranceList.push({ name: '考核管理', image: require('@/assets/image/1.png'), url: '/assessManagement' });
|
|
entranceList.push({ name: '考核管理', image: require('@/assets/image/1.png'), url: '/assessManagement' });
|
|
}
|
|
}
|
|
if (this.$isAuthoritys([this.$13, this.$14])) {
|
|
if (this.$isAuthoritys([this.$13, this.$14])) {
|
|
@@ -660,35 +735,58 @@ export default {
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style scoped="scoped">
|
|
<style scoped="scoped">
|
|
- .ts {
|
|
|
|
- height: 64px;
|
|
|
|
- padding: 8px 16px;
|
|
|
|
- font-size: 14px;
|
|
|
|
- color: #089fff;
|
|
|
|
- background: #e6f3ff;
|
|
|
|
- font-weight: 500;
|
|
|
|
- box-sizing: border-box;
|
|
|
|
- margin-bottom: 10px;
|
|
|
|
- }
|
|
|
|
- .ts img {
|
|
|
|
- width: 24px;
|
|
|
|
- height: 24px;
|
|
|
|
- }
|
|
|
|
- .ts .flex-1 {
|
|
|
|
- padding: 0 8px;
|
|
|
|
- }
|
|
|
|
- .ts .btn {
|
|
|
|
- width: 94px;
|
|
|
|
- height: 28px;
|
|
|
|
- background-color: #089fff;
|
|
|
|
- line-height: 28px;
|
|
|
|
- font-size: 14px;
|
|
|
|
- color: #fff;
|
|
|
|
- border-radius: 3px;
|
|
|
|
- cursor: pointer;
|
|
|
|
- text-align: center;
|
|
|
|
- }
|
|
|
|
-.actionText {
|
|
|
|
|
|
+.fa{
|
|
|
|
+ background-color: #f0a020;
|
|
|
|
+ color: #fff;
|
|
|
|
+ width: 200px;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ margin-left: auto;
|
|
|
|
+ padding: 0.1rem 0.32rem;
|
|
|
|
+ border-bottom-left-radius: 25px;
|
|
|
|
+ border-top-left-radius:25px;
|
|
|
|
+ padding-left: 1.4rem;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+}
|
|
|
|
+.headerImg {
|
|
|
|
+ background-position: center;
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
+ background-size: cover;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+}
|
|
|
|
+.ts {
|
|
|
|
+ height: 64px;
|
|
|
|
+ padding: 8px 16px;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #089fff;
|
|
|
|
+ background: #e6f3ff;
|
|
|
|
+ font-weight: 500;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
+}
|
|
|
|
+.ts img {
|
|
|
|
+ width: 24px;
|
|
|
|
+ height: 24px;
|
|
|
|
+}
|
|
|
|
+.ts .flex-1 {
|
|
|
|
+ padding: 0 8px;
|
|
|
|
+}
|
|
|
|
+.ts .btn {
|
|
|
|
+ width: 94px;
|
|
|
|
+ height: 28px;
|
|
|
|
+ background-color: #089fff;
|
|
|
|
+ line-height: 28px;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ color: #fff;
|
|
|
|
+ border-radius: 3px;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ text-align: center;
|
|
|
|
+}
|
|
|
|
+.dialog ::v-deep .el-dialog {
|
|
|
|
+ border-radius: 25px;
|
|
|
|
+}
|
|
|
|
+.dialog ::v-deep .el-dialog__header,.dialog ::v-deep .el-dialog__body {
|
|
|
|
+ padding: 0;
|
|
|
|
+ border-radius: 25px;
|
|
}
|
|
}
|
|
.zmBox {
|
|
.zmBox {
|
|
width: 18px;
|
|
width: 18px;
|
|
@@ -729,7 +827,7 @@ export default {
|
|
.more2 span:hover {
|
|
.more2 span:hover {
|
|
color: #26a2ff;
|
|
color: #26a2ff;
|
|
}
|
|
}
|
|
-.dispose-left{
|
|
|
|
|
|
+.dispose-left {
|
|
position: relative;
|
|
position: relative;
|
|
}
|
|
}
|
|
.dispose-left ::v-deep.el-badge__content.is-fixed {
|
|
.dispose-left ::v-deep.el-badge__content.is-fixed {
|