|
@@ -25,6 +25,22 @@
|
|
<div class="label">任务备注</div>
|
|
<div class="label">任务备注</div>
|
|
<textarea class="flex-1" disabled="disabled" v-model="workDetailData.task_remark" style="border: none;height:100px"></textarea>
|
|
<textarea class="flex-1" disabled="disabled" v-model="workDetailData.task_remark" style="border: none;height:100px"></textarea>
|
|
</li>
|
|
</li>
|
|
|
|
+ <li class="flex-box" v-if="workDetailData.task_file_list && workDetailData.task_file_list.length > 0">
|
|
|
|
+ <div class="label"></div>
|
|
|
|
+ <div class="content_text">
|
|
|
|
+ <el-image
|
|
|
|
+ v-for="(item, index) in workDetailData.task_file_list"
|
|
|
|
+ :key="index"
|
|
|
|
+ style="width: 100px; height: 100px;margin-right:8px"
|
|
|
|
+ :src="item"
|
|
|
|
+ :preview-src-list="workDetailData.task_file_list"
|
|
|
|
+ ></el-image>
|
|
|
|
+ </div>
|
|
|
|
+ </li>
|
|
|
|
+ <li class="flex-box">
|
|
|
|
+ <div class="label">积分种类</div>
|
|
|
|
+ <div class="content_text">{{ workDetailData.pt_name }}</div>
|
|
|
|
+ </li>
|
|
<li class="flex-box">
|
|
<li class="flex-box">
|
|
<div class="label">任务积分</div>
|
|
<div class="label">任务积分</div>
|
|
<div class="content_text">{{ workDetailData.point_config.base_point }}{{ workDetailData.pt_name }}</div>
|
|
<div class="content_text">{{ workDetailData.point_config.base_point }}{{ workDetailData.pt_name }}</div>
|
|
@@ -33,52 +49,100 @@
|
|
<div class="label">最终分</div>
|
|
<div class="label">最终分</div>
|
|
<div class="content_text">{{ workDetailData.point_config.review_point }}</div>
|
|
<div class="content_text">{{ workDetailData.point_config.review_point }}</div>
|
|
</li>
|
|
</li>
|
|
|
|
+ <li class="flex-box">
|
|
|
|
+ <div class="label">审批人</div>
|
|
|
|
+ <div class="content_text">{{ workDetailData.reviewer_name }}</div>
|
|
|
|
+ </li>
|
|
|
|
+ <li class="flex-box">
|
|
|
|
+ <div class="label">发布人</div>
|
|
|
|
+ <div class="content_text">{{ workDetailData.publisher_name }}</div>
|
|
|
|
+ </li>
|
|
|
|
+ <li class="flex-box" v-if="workDetailData.create_time">
|
|
|
|
+ <div class="label">发布时间</div>
|
|
|
|
+ <div class="content_text">{{ workDetailData.create_time }}</div>
|
|
|
|
+ </li>
|
|
<li class="flex-box">
|
|
<li class="flex-box">
|
|
<div class="label">截止时间</div>
|
|
<div class="label">截止时间</div>
|
|
<div class="content_text">{{ workDetailData.expire_time }}</div>
|
|
<div class="content_text">{{ workDetailData.expire_time }}</div>
|
|
</li>
|
|
</li>
|
|
- <li class="flex-box" v-if="workDetailData.point_config.timeout_deduction_point > 0">
|
|
|
|
- <div class="label">逾期扣分</div>
|
|
|
|
- <div class="content_text">{{ workDetailData.point_config.timeout_deduction_point }} B分/天</div>
|
|
|
|
- </li>
|
|
|
|
<li class="flex-box" v-if="workDetailData.point_config.ahead_award_point > 0">
|
|
<li class="flex-box" v-if="workDetailData.point_config.ahead_award_point > 0">
|
|
<div class="label">提前奖分</div>
|
|
<div class="label">提前奖分</div>
|
|
<div class="content_text">{{ workDetailData.point_config.ahead_award_point }} B分/天</div>
|
|
<div class="content_text">{{ workDetailData.point_config.ahead_award_point }} B分/天</div>
|
|
</li>
|
|
</li>
|
|
- <li class="flex-box">
|
|
|
|
- <div class="label">审批人</div>
|
|
|
|
- <div class="content_text">{{ workDetailData.reviewer_name }}</div>
|
|
|
|
|
|
+ <li class="flex-box" v-if="workDetailData.point_config.timeout_deduction_point > 0">
|
|
|
|
+ <div class="label">逾期扣分</div>
|
|
|
|
+ <div class="content_text">{{ workDetailData.point_config.timeout_deduction_point }} B分/天</div>
|
|
</li>
|
|
</li>
|
|
- <li class="flex-box">
|
|
|
|
- <div class="label">发布人</div>
|
|
|
|
- <div class="content_text">{{ workDetailData.publisher_name }}</div>
|
|
|
|
|
|
+ <li class="flex-box" v-if="workDetailData.complete_task && workDetailData.complete_task.time">
|
|
|
|
+ <div class="label">完成时间</div>
|
|
|
|
+ <div class="content_text">{{ workDetailData.complete_task.time }}</div>
|
|
</li>
|
|
</li>
|
|
- <li class="flex-box">
|
|
|
|
- <div class="label">积分种类</div>
|
|
|
|
- <div class="content_text">{{ workDetailData.pt_name }}</div>
|
|
|
|
|
|
+ <li class="flex-box" v-if="workDetailData.complete_task && workDetailData.complete_task.remark">
|
|
|
|
+ <div class="label">完成备注</div>
|
|
|
|
+ <div class="content_text">{{ workDetailData.complete_task.remark }}</div>
|
|
|
|
+ </li>
|
|
|
|
+ <li class="flex-box" v-if="workDetailData.complete_task && workDetailData.complete_task.files && workDetailData.complete_task.files.length > 0">
|
|
|
|
+ <div class="label"></div>
|
|
|
|
+ <div class="content_text">
|
|
|
|
+ <el-image
|
|
|
|
+ v-for="(item, index) in workDetailData.complete_task.files"
|
|
|
|
+ :key="index"
|
|
|
|
+ style="width: 100px; height: 100px;margin-right:8px"
|
|
|
|
+ :src="item"
|
|
|
|
+ :preview-src-list="workDetailData.complete_task.files"
|
|
|
|
+ ></el-image>
|
|
|
|
+ </div>
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
- <div v-show="showWork">
|
|
|
|
|
|
+
|
|
|
|
+ <div v-show="workDetailData.point_config && workDetailData.point_config.item_info">
|
|
|
|
+ <p class="row_title">规则依据</p>
|
|
|
|
+ <el-row :gutter="10" v-if="workDetailData.point_config.rule_info">
|
|
|
|
+ <el-col :span="4">规则分类</el-col>
|
|
|
|
+ <el-col :span="19">{{ workDetailData.point_config.rule_info.name }}</el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row v-if="workDetailData.point_config.item_info">
|
|
|
|
+ <el-col :span="4">积分规则</el-col>
|
|
|
|
+ <el-col :span="19">{{ workDetailData.point_config.item_info.remark }}</el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row v-if="workDetailData.point_config.item_info">
|
|
|
|
+ <el-col :span="4">积分</el-col>
|
|
|
|
+ <el-col :span="19" v-show="workDetailData.point_config.item_info.min_point == workDetailData.point_config.item_info.max_point">{{ workDetailData.point_config.item_info.min_point }}</el-col>
|
|
|
|
+ <el-col :span="19" v-show="workDetailData.point_config.item_info.min_point != workDetailData.point_config.item_info.max_point">
|
|
|
|
+ {{ workDetailData.point_config.item_info.min_point }} ~ {{ workDetailData.point_config.item_info.max_point }}
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-show="showWork" style="border-top: 2px solid #f8f8f8;">
|
|
<div class="d_progress">
|
|
<div class="d_progress">
|
|
- <div class="flex-box">
|
|
|
|
|
|
+ <div class="flex-box ">
|
|
<div class="flex-1">工作进度({{ workDetailData.progress }}%)</div>
|
|
<div class="flex-1">工作进度({{ workDetailData.progress }}%)</div>
|
|
|
|
+ <div class="fontColorF addJf" @click="sliderShow" v-if="workDetailData.employee_id == userId && workDetailData.status==1">+更新进度</div>
|
|
</div>
|
|
</div>
|
|
<el-progress :percentage="workDetailData.progress"></el-progress>
|
|
<el-progress :percentage="workDetailData.progress"></el-progress>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div>
|
|
<el-tabs v-model="activeName">
|
|
<el-tabs v-model="activeName">
|
|
<el-tab-pane label="工作记录" name="work">
|
|
<el-tab-pane label="工作记录" name="work">
|
|
|
|
+ <div class="flex-box">
|
|
|
|
+ <div class="flex-1"></div>
|
|
|
|
+ <div class="fontColorF addJf" @click="isOne = true" v-if="workDetailData.employee_id == userId && workDetailData.status == 1 || workDetailData.employee_id == userId && workDetailData.status == 2">+记一条工作记录</div>
|
|
|
|
+ </div>
|
|
<div class="work_box" style="padding-top:10px">
|
|
<div class="work_box" style="padding-top:10px">
|
|
- <div class="work_item" v-for="(item, index) in text_list" :key="index">
|
|
|
|
- <div class="flex-box-ce">
|
|
|
|
|
|
+ <div class="work_item" v-for="(item, index) in text_list" :key="index" style="margin: 0 0 15px 0">
|
|
|
|
+ <div class="flex-box">
|
|
<userImage class="user_img person_imghead" width="40px" height="40px" :user_name="item.recorder" :img_url="item.img_url"></userImage>
|
|
<userImage class="user_img person_imghead" width="40px" height="40px" :user_name="item.recorder" :img_url="item.img_url"></userImage>
|
|
- <div class="d_name flex-1">{{ item.recorder }}
|
|
|
|
- <span v-if="item.point * 1 > 0">+{{ item.point }}</span>
|
|
|
|
- <span v-if="item.point * 1 < 0">{{ item.point }}</span>
|
|
|
|
|
|
+ <div style="width: 100%;" class="d_name">
|
|
|
|
+ <div class="flex-box flex-d-center">
|
|
|
|
+ <div class="flex-1">{{ item.recorder }}
|
|
|
|
+ <span v-if="item.point * 1 > 0">+{{ item.point }}</span>
|
|
|
|
+ <span v-if="item.point * 1 < 0">{{ item.point }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="d_date fontColorF">{{ item.time }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="fontColorB" style="margin-top: 5px;">{{ item.remark }}</div>
|
|
</div>
|
|
</div>
|
|
- <div class="d_date fontColorF">{{ item.time }}</div>
|
|
|
|
</div>
|
|
</div>
|
|
- <div class="d_content fontColorB">{{ item.remark }}</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div v-if="text_list.length==0" class="fontColorF" style="text-align: center;">暂无工作记录</div>
|
|
<div v-if="text_list.length==0" class="fontColorF" style="text-align: center;">暂无工作记录</div>
|
|
</div>
|
|
</div>
|
|
@@ -89,18 +153,23 @@
|
|
<span v-if="point_total > 0">合计:+{{ point_total }}</span>
|
|
<span v-if="point_total > 0">合计:+{{ point_total }}</span>
|
|
<span v-else>合计:{{ point_total }}</span>
|
|
<span v-else>合计:{{ point_total }}</span>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="fontColorF addJf" @click="isIntegral = true" v-if="workDetailData.reviewer_id == userId && workDetailData.status == 1 || workDetailData.reviewer_id == userId && workDetailData.status == 2">+记分</div>
|
|
</div>
|
|
</div>
|
|
<div class="work_box" style="padding-top:10px">
|
|
<div class="work_box" style="padding-top:10px">
|
|
- <div class="work_item" v-for="(item, index) in point_list" :key="index">
|
|
|
|
- <div class="flex-box-ce">
|
|
|
|
|
|
+ <div class="work_item" v-for="(item, index) in point_list" :key="index" style="margin: 0 0 15px 0">
|
|
|
|
+ <div class="flex-box">
|
|
<userImage class="user_img person_imghead" width="40px" height="40px" :user_name="item.recorder" :img_url="item.img_url"></userImage>
|
|
<userImage class="user_img person_imghead" width="40px" height="40px" :user_name="item.recorder" :img_url="item.img_url"></userImage>
|
|
- <div class="d_name flex-1">{{ item.recorder }}
|
|
|
|
- <span class="red" v-if="item.point * 1 > 0">+{{ item.point }}</span>
|
|
|
|
- <span class="green" v-if="item.point * 1 < 0">{{ item.point }}</span>
|
|
|
|
|
|
+ <div style="width: 100%;" class="d_name">
|
|
|
|
+ <div class="flex-box flex-d-center">
|
|
|
|
+ <div class="flex-1">{{ item.recorder }}
|
|
|
|
+ <span class="red" v-if="item.point * 1 > 0">+{{ item.point }}</span>
|
|
|
|
+ <span class="green" v-if="item.point * 1 < 0">{{ item.point }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="d_date fontColorF">{{ item.time }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="fontColorB" style="margin-top: 5px;">{{ item.remark }}</div>
|
|
</div>
|
|
</div>
|
|
- <div class="d_date fontColorF">{{ item.time }}</div>
|
|
|
|
</div>
|
|
</div>
|
|
- <div class="d_content fontColorB">{{ item.remark }}</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div v-if="point_list.length==0" class="fontColorF" style="text-align: center;">暂无积分记录</div>
|
|
<div v-if="point_list.length==0" class="fontColorF" style="text-align: center;">暂无积分记录</div>
|
|
</div>
|
|
</div>
|
|
@@ -110,10 +179,67 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-drawer>
|
|
</el-drawer>
|
|
|
|
+
|
|
|
|
+ <!-- 更新进度 -->
|
|
|
|
+ <el-dialog title="更新进度" :close-on-click-modal="false" :visible.sync="isSlider" :before-close="publicClose" width="40%">
|
|
|
|
+ <div class="slider">
|
|
|
|
+ <div class="fontColorF">拖动滑杆更新进度</div>
|
|
|
|
+ <el-slider v-model="progress"></el-slider>
|
|
|
|
+ </div>
|
|
|
|
+ <span slot="footer">
|
|
|
|
+ <el-button @click="publicClose()">取消</el-button>
|
|
|
|
+ <el-button type="primary" @click="sliderSend">完成</el-button>
|
|
|
|
+ </span>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <!-- 记一条 -->
|
|
|
|
+ <el-dialog title="记一条" :close-on-click-modal="false" :visible.sync="isOne" :before-close="publicClose" width="40%">
|
|
|
|
+ <div class="flex-box">
|
|
|
|
+ <div style="width: 80px;">工作记录</div>
|
|
|
|
+ <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="textarea"></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ <span slot="footer">
|
|
|
|
+ <el-button @click="publicClose()">取消</el-button>
|
|
|
|
+ <el-button type="primary" @click="onerecord">完成</el-button>
|
|
|
|
+ </span>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <!-- 记分记录 -->
|
|
|
|
+ <el-dialog title="记分" :visible.sync="isIntegral" :before-close="publicClose" width="40%" :close-on-click-modal="false">
|
|
|
|
+ <el-form :model="integral" ref="integral" label-width="80px" :rules="formRules">
|
|
|
|
+ <el-form-item label="记录" prop="text" :rules="[{ required: true, message: '记录不能为空'}]">
|
|
|
|
+ <el-input type="textarea" :rows="3" v-model="integral.text"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <!-- 记分不能为空 -->
|
|
|
|
+ <el-form-item label="记分" prop="num" >
|
|
|
|
+ <!-- <el-form-item label="记分" prop="num" :rules="[{ required: false, message: '记分不能为空'},{ type: 'number', message: '积分必须为数字值'}]"> -->
|
|
|
|
+ <div class="num" :class="[integral.type=='1'?'add':'jian']"></div>
|
|
|
|
+ <el-input placeholder="请输入内容" v-model.number="integral.num">
|
|
|
|
+ <el-select v-model="integral.type" slot="prepend" placeholder="请选择" style="width: 80px;">
|
|
|
|
+ <el-option label="奖分" value="1"></el-option>
|
|
|
|
+ <el-option label="扣分" value="2"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <span slot="footer">
|
|
|
|
+ <el-button @click="publicClose()">取消</el-button>
|
|
|
|
+ <el-button type="primary" @click="integralSend('integral')">完成</el-button>
|
|
|
|
+ </span>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
+const validatorNoZero = (rule, value, callback) => {//设置记分的验证
|
|
|
|
+ if (value === 0) {
|
|
|
|
+ return callback(new Error("记分不能为0"));
|
|
|
|
+ } else if (value === '') {
|
|
|
|
+ return callback(new Error("记分不能为空"));
|
|
|
|
+ }else if (isNaN(value)){
|
|
|
|
+ return callback(new Error("积分必须为数字值"));
|
|
|
|
+ }else{
|
|
|
|
+ callback();
|
|
|
|
+ }
|
|
|
|
+};
|
|
export default {
|
|
export default {
|
|
name: 'taskDetailsPopup',
|
|
name: 'taskDetailsPopup',
|
|
props: {
|
|
props: {
|
|
@@ -159,7 +285,29 @@ export default {
|
|
point_list: [],
|
|
point_list: [],
|
|
activeName: 'work',
|
|
activeName: 'work',
|
|
getDataUrl: '/api/integral/work',
|
|
getDataUrl: '/api/integral/work',
|
|
- params: {}
|
|
|
|
|
|
+ params: {},
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ userId: this.$getUserData().id,
|
|
|
|
+ isSlider: false,//更新进度弹窗
|
|
|
|
+ progress: 0,//更新进度modus
|
|
|
|
+ isOne: false,//记一条
|
|
|
|
+ textarea: '',//记录一条内容
|
|
|
|
+ isIntegral:false,//记分记录
|
|
|
|
+ integral:{
|
|
|
|
+ text:'',
|
|
|
|
+ num:0,
|
|
|
|
+ type:"1",
|
|
|
|
+ },
|
|
|
|
+ formRules:{//记分验证
|
|
|
|
+ num: [
|
|
|
|
+ {
|
|
|
|
+ required: true,
|
|
|
|
+ validator: validatorNoZero,
|
|
|
|
+ trigger: "blur"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ },
|
|
};
|
|
};
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
@@ -170,6 +318,86 @@ export default {
|
|
});
|
|
});
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ //记分记录
|
|
|
|
+ integralSend(formName){
|
|
|
|
+ var items = this.workDetailData.process.list || [];
|
|
|
|
+ var process = {
|
|
|
|
+ img_url: this.$getUserData().img_url,
|
|
|
|
+ point: this.integral.type == "1" ? this.integral.num : '-' + this.integral.num,
|
|
|
|
+ recorder_id: this.$getUserData().id,
|
|
|
|
+ recorder: this.$getUserData().name,
|
|
|
|
+ remark: this.integral.text,
|
|
|
|
+ time: this.$moment().format('YYYY-MM-DD HH:mm')
|
|
|
|
+ }
|
|
|
|
+ var data = {
|
|
|
|
+ work_id: this.workDetailData.id,
|
|
|
|
+ process: [],
|
|
|
|
+ }
|
|
|
|
+ items.unshift(process);
|
|
|
|
+ data.process = items;
|
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ this.$axios('post','/api/integral/work',data).then(res => {
|
|
|
|
+ if (res.data.code == 1) {
|
|
|
|
+ this.publicClose();
|
|
|
|
+ this.getData();
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ //记一条
|
|
|
|
+ onerecord(){
|
|
|
|
+ if(!this.textarea){
|
|
|
|
+ this.$message.error("请输入备注内容");
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var items = this.workDetailData.process.list || [];
|
|
|
|
+ console.log(items)
|
|
|
|
+ var process = {
|
|
|
|
+ img_url: this.$getUserData().img_url,
|
|
|
|
+ point: 0,
|
|
|
|
+ recorder_id: this.$getUserData().id,
|
|
|
|
+ recorder: this.$getUserData().name,
|
|
|
|
+ remark: this.textarea,
|
|
|
|
+ time: this.$moment().format('YYYY-MM-DD HH:mm')
|
|
|
|
+ }
|
|
|
|
+ var data={
|
|
|
|
+ work_id:this.workDetailData.id,
|
|
|
|
+ process:[],
|
|
|
|
+ }
|
|
|
|
+ items.unshift(process);
|
|
|
|
+ data.process=items;
|
|
|
|
+ this.$axios('post', '/api/integral/work', data).then(res => {
|
|
|
|
+ if (res.data.code == 1) {
|
|
|
|
+ this.publicClose();
|
|
|
|
+ this.getData();
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ //更新进度
|
|
|
|
+ sliderShow(){
|
|
|
|
+ this.progress = this.workDetailData.progress
|
|
|
|
+ this.isSlider = true
|
|
|
|
+ },
|
|
|
|
+ sliderSend(){
|
|
|
|
+ var self = this;
|
|
|
|
+ let data = {
|
|
|
|
+ work_id: self.workDetailData.id,
|
|
|
|
+ progress: self.progress,
|
|
|
|
+ }
|
|
|
|
+ self.$axios('post','/api/integral/work',data).then(res => {
|
|
|
|
+ if (res.data.code == 1) {
|
|
|
|
+ this.getData();
|
|
|
|
+ self.isSlider = false;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ publicClose(){
|
|
|
|
+ this.isSlider = false;
|
|
|
|
+ this.isOne = false;
|
|
|
|
+ this.isIntegral = false;
|
|
|
|
+ },
|
|
// 关闭弹窗
|
|
// 关闭弹窗
|
|
handleClose() {
|
|
handleClose() {
|
|
this.$emit('update:visible', false);
|
|
this.$emit('update:visible', false);
|
|
@@ -248,6 +476,7 @@ export default {
|
|
padding: 20px;
|
|
padding: 20px;
|
|
height: calc(100vh - 60px);
|
|
height: calc(100vh - 60px);
|
|
overflow: auto;
|
|
overflow: auto;
|
|
|
|
+ padding-bottom: 100px;
|
|
.row_title {
|
|
.row_title {
|
|
position: relative;
|
|
position: relative;
|
|
margin: 0 0 20px 0;
|
|
margin: 0 0 20px 0;
|
|
@@ -282,4 +511,32 @@ export default {
|
|
.d_content{
|
|
.d_content{
|
|
margin-left: 50px;
|
|
margin-left: 50px;
|
|
}
|
|
}
|
|
|
|
+.addJf{
|
|
|
|
+ font-size: 13px;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ margin-bottom: 5px;
|
|
|
|
+ padding: 5px;
|
|
|
|
+ transition: all .3s;
|
|
|
|
+}
|
|
|
|
+.addJf:hover{
|
|
|
|
+ color: #26a2ff !important;
|
|
|
|
+}
|
|
|
|
+.num{
|
|
|
|
+ position: absolute;
|
|
|
|
+ height: 22px;
|
|
|
|
+ width: 20px;
|
|
|
|
+ z-index: 999;
|
|
|
|
+ left: 85px;
|
|
|
|
+ line-height: 40px !important;
|
|
|
|
+}
|
|
|
|
+.add:before{
|
|
|
|
+ position: absolute;
|
|
|
|
+ content: "+";
|
|
|
|
+ color: #f56c6c;
|
|
|
|
+}
|
|
|
|
+.jian:before{
|
|
|
|
+ position: absolute;
|
|
|
|
+ content: "-";
|
|
|
|
+ color: #67c23a;
|
|
|
|
+}
|
|
</style>
|
|
</style>
|