样式修复

dev_2022-03-03
Jo 3 years ago
parent 2374bba98b
commit 90ec1ffc68
  1. 14
      src/components/codemirror.vue
  2. 1
      src/directive/auth/index.js
  3. 2
      src/utils/api.js
  4. 235
      src/views/course/Curriculum.vue
  5. 539
      src/views/customer/AddCustomer.vue
  6. 186
      src/views/customer/customer.vue
  7. 11
      src/views/data/Data.vue
  8. 62
      src/views/data/Framework.vue
  9. 186
      src/views/data/Introduce.vue
  10. 161
      src/views/data/Product.vue
  11. 14
      src/views/order/AddOrder.vue
  12. 241
      src/views/order/Order.vue
  13. 191
      src/views/serve/Configure.vue
  14. 4
      src/views/serve/backstage/index.vue
  15. 12
      src/views/system/addLog.vue
  16. 6
      src/views/system/index.vue
  17. 114
      src/views/system/manageLog.vue
  18. 282
      src/views/user/User.vue
  19. 19
      vue.config.js

@ -133,7 +133,7 @@ export default {
// //
ready() { ready() {
const code = this.$refs.codemirror.codemirror const code = this.$refs.codemirror.codemirror
code.setSize("auto", "calc(100vh - 400px)"); code.setSize("auto", "calc(100vh - 370px)");
code.on('keypress', function() { code.on('keypress', function() {
// //
code.showHint() code.showHint()
@ -207,6 +207,15 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-thumb {
width: 5px;
border-radius: 6px;
background: rgba(173,173,173,.7);
}
.wrap { .wrap {
display: flex; display: flex;
} }
@ -314,7 +323,8 @@ export default {
margin: 10px; margin: 10px;
position: absolute; position: absolute;
width: calc(100% - 14px); width: calc(100% - 14px);
height: calc(100vh - 247px); top: 0;
bottom: -8px;
overflow: auto; overflow: auto;
} }
} }

@ -15,7 +15,6 @@ export default {
btnText = `${vnode.context.$route.path}:${el.innerText}` btnText = `${vnode.context.$route.path}:${el.innerText}`
} }
const btnPermissions = store.state.btns const btnPermissions = store.state.btns
console.log("🚀 ~ file: index.js ~ line 18 ~ inserted ~ btnPermissions", btnPermissions, btnText)
if (btnText && btnPermissions && btnPermissions.length) { if (btnText && btnPermissions && btnPermissions.length) {
const isPermission = btnPermissions.includes(btnText) const isPermission = btnPermissions.includes(btnText)
// 如果按钮集合里没有该权限,就把该按钮给去除 // 如果按钮集合里没有该权限,就把该按钮给去除

@ -6,7 +6,7 @@ const host1 = 'http://192.168.31.137:9000'
export default { export default {
logins: `users/users/user/login`, //登录 logins: `users/users/user/login`, //登录
verification: `${Setting.host}/users/users/user/captcha`,// 验证码图片 verification: `${Setting.host}users/users/user/captcha`,// 验证码图片
bindPhoneOrEmail: `users/users/userAccount/bindPhoneOrEmail`,// 绑定手机 bindPhoneOrEmail: `users/users/userAccount/bindPhoneOrEmail`,// 绑定手机
sendPhoneOrEmailCode: `users/users/userAccount/sendPhoneOrEmailCode`,// 手机验证码 sendPhoneOrEmailCode: `users/users/userAccount/sendPhoneOrEmailCode`,// 手机验证码

@ -1,125 +1,119 @@
<template> <template>
<div> <div>
<el-row :gutter="20"> <el-card shadow="hover" class="mgb20">
<el-col :span="24"> <div>
<el-card shadow="hover" class="mgb20"> <div class="flex-center mgb20">
<div> <p class="hr_tag"></p>
<div class="flex-center mgb20"> <span>筛选</span>
<p class="hr_tag"></p> </div>
<span>筛选</span> <div>
</div> <el-form label-width="80px">
<div> <el-col :span="4">
<el-form label-width="80px"> <el-form-item label="学科类别">
<el-col :span="4"> <el-select v-model="form.categoryId" clearable
<el-form-item label="学科类别"> @change="getProfessionalClass()" @clear="clearClass()">
<el-select v-model="form.categoryId" clearable <el-option v-for="(item,index) in subjectList" :key="index"
@change="getProfessionalClass()" @clear="clearClass()"> :label="item.disciplineName"
<el-option v-for="(item,index) in subjectList" :key="index" :value="item.disciplineId"></el-option>
:label="item.disciplineName" </el-select>
:value="item.disciplineId"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="4">
</el-col> <el-form-item label="专业类">
<el-col :span="4"> <el-select v-model="form.professionalCategoryId" clearable
<el-form-item label="专业类"> :disabled="form.categoryId ? false : true"
<el-select v-model="form.professionalCategoryId" clearable @change="getProfessional()" @clear="clearProfess()">
:disabled="form.categoryId ? false : true" <el-option v-for="(item,index) in ProfessionalClassList" :key="index"
@change="getProfessional()" @clear="clearProfess()"> :label="item.professionalClassName"
<el-option v-for="(item,index) in ProfessionalClassList" :key="index" :value="item.professionalClassId"></el-option>
:label="item.professionalClassName" </el-select>
:value="item.professionalClassId"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="4">
</el-col> <el-form-item label="专业">
<el-col :span="4"> <el-select v-model="form.professionalId" clearable
<el-form-item label="专业"> :disabled="form.professionalCategoryId ? false : true"
<el-select v-model="form.professionalId" clearable @change="getData()">
:disabled="form.professionalCategoryId ? false : true" <el-option v-for="(item,index) in ProfessionalList" :key="index"
@change="getData()"> :label="item.professionalName"
<el-option v-for="(item,index) in ProfessionalList" :key="index" :value="item.professionalId"></el-option>
:label="item.professionalName" </el-select>
:value="item.professionalId"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="4">
</el-col> <el-form-item label="课程类别">
<el-col :span="4"> <el-select v-model="form.curriculumType" clearable
<el-form-item label="课程类别"> @change="getData()">
<el-select v-model="form.curriculumType" clearable <el-option label="理论课程" :value="0"></el-option>
@change="getData()"> <el-option label="实训课程" :value="1"></el-option>
<el-option label="理论课程" :value="0"></el-option> </el-select>
<el-option label="实训课程" :value="1"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="6">
</el-col> <el-form-item>
<el-col :span="6"> <el-input placeholder="请输入课程名称" prefix-icon="el-icon-search"
<el-form-item> v-model="form.curriculumName" clearable
<el-input placeholder="请输入课程名称" prefix-icon="el-icon-search" @keyup.enter.native="onSearch"></el-input>
v-model="form.curriculumName" clearable </el-form-item>
@keyup.enter.native="onSearch"></el-input> </el-col>
</el-form-item> </el-form>
</el-col> </div>
</el-form> </div>
</div> </el-card>
</div>
</el-card>
</el-col>
<el-col :span="24"> <el-card shadow="hover" class="card">
<el-card shadow="hover" class="mgb20"> <div class="flex-between mgb20">
<div class="flex-between mgb20"> <div class="flex-center">
<div class="flex-center"> <p class="hr_tag"></p>
<p class="hr_tag"></p> <span>课程列表</span>
<span>课程列表</span> </div>
</div> <div>
<div> <el-button type="primary" round @click="addcourse" v-auth>新增课程</el-button>
<el-button type="primary" round @click="addcourse" v-auth>新增课程</el-button> <el-button type="primary" round @click="delAllSelection" v-auth>批量删除</el-button>
<el-button type="primary" round @click="delAllSelection" v-auth>批量删除</el-button> </div>
</div> </div>
</div> <el-table v-loading="loading" :data="courseData" class="table" ref="table" stripe header-align="center"
<el-table v-loading="loading" :data="courseData" class="table" ref="table" stripe header-align="center" @selection-change="handleSelectionChange" :row-key="getRowKeys">
@selection-change="handleSelectionChange" :row-key="getRowKeys"> <el-table-column type="selection" width="55" align="center"
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column>
:reserve-selection="true"></el-table-column> <el-table-column type="index" width="100" label="序号" align="center"></el-table-column>
<el-table-column type="index" width="100" label="序号" align="center"></el-table-column> <el-table-column prop="curriculumName" label="课程名称" align="center"></el-table-column>
<el-table-column prop="curriculumName" label="课程名称" align="center"></el-table-column> <el-table-column prop="curriculumType" label="课程类型" align="center">
<el-table-column prop="curriculumType" label="课程类型" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <span class="ellipsis">{{ courseTypeStatus[scope.row.curriculumType] }}</span>
<span class="ellipsis">{{ courseTypeStatus[scope.row.curriculumType] }}</span> </template>
</template> </el-table-column>
</el-table-column> <el-table-column label="配置的实训应用" align="center">
<el-table-column label="配置的实训应用" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <span class="ellipsis">{{ scope.row.sysName }}</span>
<span class="ellipsis">{{ scope.row.sysName }}</span> </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="orderVolume" label="订单量" align="center"></el-table-column>
<el-table-column prop="orderVolume" label="订单量" align="center"></el-table-column> <el-table-column prop="expectedCourse" label="预计课时" align="center"></el-table-column>
<el-table-column prop="expectedCourse" label="预计课时" align="center"></el-table-column> <el-table-column label="上架/下架" align="center">
<el-table-column label="上架/下架" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <el-switch
<el-switch v-model="scope.row.isEnable"
v-model="scope.row.isEnable" :active-value="0"
:active-value="0" :inactive-value="1"
:inactive-value="1" @change="changeSwitch($event, scope.row)"
@change="changeSwitch($event, scope.row)" v-auth="'/curriculum:上下架'">
v-auth="'/curriculum:上下架'"> </el-switch>
</el-switch> </template>
</template> </el-table-column>
</el-table-column> <el-table-column label="操作" align="center">
<el-table-column label="操作" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <el-button type="text" @click="edit(scope.row)" v-auth>编辑</el-button>
<el-button type="text" @click="edit(scope.row)" v-auth>编辑</el-button> <el-button type="text" @click="config(scope.row)" v-auth>内容设置</el-button>
<el-button type="text" @click="config(scope.row)" v-auth>内容设置</el-button> <el-button type="text" @click="handleDelete(scope.row)" v-auth>删除</el-button>
<el-button type="text" @click="handleDelete(scope.row)" v-auth>删除</el-button> </template>
</template> </el-table-column>
</el-table-column> </el-table>
</el-table> <div class="pagination">
<div class="pagination"> <el-pagination background @current-change="handleCurrentChange" :current-page="pageNo"
<el-pagination background @current-change="handleCurrentChange" :current-page="pageNo" layout="total, prev, pager, next" :total="totals"></el-pagination>
layout="total, prev, pager, next" :total="totals"></el-pagination> </div>
</div> </el-card>
</el-card>
</el-col>
</el-row>
</div> </div>
</template> </template>
@ -310,6 +304,9 @@ export default {
</script> </script>
<style scoped> <style scoped>
.card {
min-height: calc(100vh - 300px);
}
.mag { .mag {
margin-right: 20px; margin-right: 20px;
} }

@ -1,274 +1,270 @@
<template> <template>
<div> <div>
<el-row :gutter="20"> <el-card shadow="hover" class="mgb20">
<el-col :span="24"> <div class="flex-between">
<el-card shadow="hover" class="mgb20"> <div class="per_title" v-preventReClick @click="goback()">
<div class="flex-between"> <i class="el-icon-arrow-left"></i>
<div class="per_title" v-preventReClick @click="goback()"> <span class="per_back">返回</span>
<i class="el-icon-arrow-left"></i> <span class="per_school" v-text="isDetail ? '查看客户信息' : (customerId ? '编辑客户信息' : '新增客户信息')"></span>
<span class="per_back">返回</span> </div>
<span class="per_school" v-text="isDetail ? '查看客户信息' : (customerId ? '编辑客户信息' : '新增客户信息')"></span> <el-button v-if="!isDetail" type="primary" round class="mag" v-preventReClick @click="saveAdd('form')">确定</el-button>
</div> </div>
<el-button v-if="!isDetail" type="primary" round class="mag" v-preventReClick @click="saveAdd('form')">确定</el-button> </el-card>
</div>
</el-card>
<el-card shadow="hover" class="mgb20"> <el-card shadow="hover" :class="customerId ? 'mgb20' : 'card'">
<div> <div>
<div class="flex-center mgb20"> <div class="flex-center mgb20">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
<span>基本信息</span> <span>基本信息</span>
</div> </div>
<div> <div>
<el-form :model="form" :rules="rules" ref="form" label-width="120px" class="flex-start-around" :disabled="isDetail"> <el-form :model="form" :rules="rules" ref="form" label-width="120px" class="flex-start-around" :disabled="isDetail">
<el-col :span="6" style="margin-right: 60px;"> <el-col :span="6" style="margin-right: 60px;">
<el-form-item prop="countries" label="国家"> <el-form-item prop="countries" label="国家">
<el-select v-model="form.countries" clearable placeholder="请选择国家"> <el-select v-model="form.countries" clearable placeholder="请选择国家">
<el-option v-for="(item,index) in countryList" :key="index" :label="item.name" :value="item.name"></el-option> <el-option v-for="(item,index) in countryList" :key="index" :label="item.name" :value="item.name"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="schoolId" label="客户名称"> <el-form-item prop="schoolId" label="客户名称">
<el-select v-model="form.schoolId" filterable clearable placeholder="请选择学校" @change="SchoolChange" @clear="clearSchool"> <el-select v-model="form.schoolId" filterable clearable placeholder="请选择学校" @change="SchoolChange" @clear="clearSchool">
<el-option v-for="(item,index) in schoolList" :key="index" :label="item.schoolName" :value="item.schoolId"></el-option> <el-option v-for="(item,index) in schoolList" :key="index" :label="item.schoolName" :value="item.schoolId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="cityId" label="城市"> <el-form-item prop="cityId" label="城市">
<el-select v-model="form.cityId" placeholder="" disabled> <el-select v-model="form.cityId" placeholder="" disabled>
<el-option v-for="(item,index) in cityList" :key="index" :label="item.cityName" :value="item.cityId"></el-option> <el-option v-for="(item,index) in cityList" :key="index" :label="item.cityName" :value="item.cityId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="industryId" label="行业"> <el-form-item prop="industryId" label="行业">
<el-select v-model="form.industryId" clearable placeholder="请选择行业" :disabled="form.industryClassId ? false : true"> <el-select v-model="form.industryId" clearable placeholder="请选择行业" :disabled="form.industryClassId ? false : true">
<el-option v-for="(item,index) in industryList" :key="index" :label="item.industryName" :value="item.industryId"></el-option> <el-option v-for="(item,index) in industryList" :key="index" :label="item.industryName" :value="item.industryId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="account" label="账号"> <el-form-item prop="account" label="账号">
<el-input placeholder="请输入账号" v-model="form.account"></el-input> <el-input placeholder="请输入账号" v-model="form.account"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="职务"> <el-form-item label="职务">
<el-input placeholder="请输入职务名称" v-model="form.position" maxlength="11"></el-input> <el-input placeholder="请输入职务名称" v-model="form.position" maxlength="11"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="产品到期时间"> <el-form-item label="产品到期时间">
<el-date-picker type="date" disabled v-model="form.expireDate" style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker> <el-date-picker type="date" disabled v-model="form.expireDate" style="width: 100%;" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" style="margin-left: 60px;"> <el-col :span="6" style="margin-left: 60px;">
<el-form-item label="客户类型"> <el-form-item label="客户类型">
<el-select v-model="form.customerType" placeholder="下单后客户类型自动补充" disabled> <el-select v-model="form.customerType" placeholder="下单后客户类型自动补充" disabled>
<el-option v-for="(item,index) in customerTypeList" :key="index" :label="item.name" :value="item.value"></el-option> <el-option v-for="(item,index) in customerTypeList" :key="index" :label="item.name" :value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="provinceId" label="省份"> <el-form-item prop="provinceId" label="省份">
<el-select v-model="form.provinceId" placeholder="" disabled> <el-select v-model="form.provinceId" placeholder="" disabled>
<el-option v-for="(item,index) in provinceList" :key="index" :label="item.provinceName" :value="item.provinceId"></el-option> <el-option v-for="(item,index) in provinceList" :key="index" :label="item.provinceName" :value="item.provinceId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="industryClassId" label="行业类型"> <el-form-item prop="industryClassId" label="行业类型">
<el-select v-model="form.industryClassId" clearable placeholder="请选择行业类型" @change="changIndustry" @clear="clearIndustry()"> <el-select v-model="form.industryClassId" clearable placeholder="请选择行业类型" @change="changIndustry" @clear="clearIndustry()">
<el-option v-for="(item,index) in IndustryClassList" :key="index" :label="item.industryClassName" :value="item.industryClassId"></el-option> <el-option v-for="(item,index) in IndustryClassList" :key="index" :label="item.industryClassName" :value="item.industryClassId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="name" label="联系人姓名"> <el-form-item prop="name" label="联系人姓名">
<el-input placeholder="请输入联系人姓名" v-model="form.name"></el-input> <el-input placeholder="请输入联系人姓名" v-model="form.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="phone" label="手机号"> <el-form-item prop="phone" label="手机号">
<el-input placeholder="请输入联系人手机号" v-model="form.phone" maxlength="11" @blur="phoneChange"></el-input> <el-input placeholder="请输入联系人手机号" v-model="form.phone" maxlength="11" @blur="phoneChange"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="email" label="邮箱"> <el-form-item prop="email" label="邮箱">
<el-input placeholder="请输入邮箱" v-model="form.email" @blur="emailChange"></el-input> <el-input placeholder="请输入邮箱" v-model="form.email" @blur="emailChange"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</div> </div>
</div> </div>
</el-card> </el-card>
<el-card shadow="hover" class="mgb20" v-show="customerId"> <el-card shadow="hover" class="mgb20" v-show="customerId">
<div class="flex-center mgb20 user_header"> <div class="flex-center mgb20 user_header">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
<span>课程权限</span> <span>课程权限</span>
</div> </div>
<div> <div>
<el-table :data="coursePermissionss" class="orderTable" stripe header-align="center"> <el-table :data="coursePermissionss" class="orderTable" stripe header-align="center">
<el-table-column type="index" width="100" label="序号" align="center"> <el-table-column type="index" width="100" label="序号" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="courseName" label="课程名称" align="center"> <el-table-column prop="courseName" label="课程名称" align="center">
</el-table-column> </el-table-column>
<el-table-column label="使用期限" align="center"> <el-table-column label="使用期限" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.periodOfUse}}&nbsp;&nbsp; {{scope.row.periodOfUse}}&nbsp;&nbsp;
<span v-if='scope.row.options == 0'></span> <span v-if='scope.row.options == 0'></span>
<span v-if='scope.row.options == 1'></span> <span v-if='scope.row.options == 1'></span>
<span v-if='scope.row.options == 2'></span> <span v-if='scope.row.options == 2'></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="起止日期" align="center"> <el-table-column label="起止日期" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.startTime}}~{{scope.row.endTime}} {{scope.row.startTime}}~{{scope.row.endTime}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="剩余期限" align="center"> <el-table-column label="剩余期限" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.remainingPeriod}}&nbsp;&nbsp; {{scope.row.remainingPeriod}}&nbsp;&nbsp;
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="端口地址" align="center"> <el-table-column label="端口地址" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="configure(scope.row)" :disabled="isDetail">配置</el-button> <el-button @click="configure(scope.row)" :disabled="isDetail">配置</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" align="center"> <el-table-column label="状态" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-if="scope.row.ship" v-model="scope.row.isEnable" :active-value="1" :inactive-value="0" :active-text="scope.row.isEnable ? '启用' : '禁用'" :disabled="isDetail" @change="switchOff($event,scope.row,scope.$index)"></el-switch> <el-switch v-if="scope.row.ship" v-model="scope.row.isEnable" :active-value="1" :inactive-value="0" :active-text="scope.row.isEnable ? '启用' : '禁用'" :disabled="isDetail" @change="switchOff($event,scope.row,scope.$index)"></el-switch>
<span v-else>未发货</span> <span v-else>未发货</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</el-card> </el-card>
<el-card shadow="hover" class="mgb20" v-show="customerId"> <el-card shadow="hover" class="mgb20" v-show="customerId">
<div class="flex-center mgb20 user_header"> <div class="flex-center mgb20 user_header">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
<span>数据平台权限</span> <span>数据平台权限</span>
</div> </div>
<div> <div>
<el-table :data="dataPermissionss" class="orderTable" stripe header-align="center"> <el-table :data="dataPermissionss" class="orderTable" stripe header-align="center">
<el-table-column type="index" width="100" label="序号" align="center"> <el-table-column type="index" width="100" label="序号" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="productName" label="产品名称" align="center"></el-table-column> <el-table-column prop="productName" label="产品名称" align="center"></el-table-column>
<el-table-column prop="periodOfUse" label="使用期限" align="center"> <el-table-column prop="periodOfUse" label="使用期限" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.periodOfUse}}&nbsp;&nbsp; {{scope.row.periodOfUse}}&nbsp;&nbsp;
<span v-if='scope.row.options == 0'></span> <span v-if='scope.row.options == 0'></span>
<span v-if='scope.row.options == 1'></span> <span v-if='scope.row.options == 1'></span>
<span v-if='scope.row.options == 2'></span> <span v-if='scope.row.options == 2'></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="usePeriod" label="起止日期" align="center"> <el-table-column prop="usePeriod" label="起止日期" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.startTime}}&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;{{scope.row.endTime}} {{scope.row.startTime}}&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;{{scope.row.endTime}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="remainingPeriod" label="剩余期限" align="center"> <el-table-column prop="remainingPeriod" label="剩余期限" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.remainingPeriod}}&nbsp;&nbsp; {{scope.row.remainingPeriod}}&nbsp;&nbsp;
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="accountNum" label="账号数" align="center"> <el-table-column prop="accountNum" label="账号数" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.accountNum}}&nbsp;&nbsp; {{scope.row.accountNum}}&nbsp;&nbsp;
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="端口地址" align="center"> <el-table-column label="端口地址" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="configure(scope.row)" :disabled="isDetail">配置</el-button> <el-button @click="configure(scope.row)" :disabled="isDetail">配置</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" align="center"> <el-table-column label="状态" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-if="scope.row.ship" v-model="scope.row.isEnable" :active-value="1" :inactive-value="0" :active-text="scope.row.isEnable ? '启用' : '禁用'" :disabled="isDetail" @change="switchOff($event,scope.row,scope.$index)"></el-switch> <el-switch v-if="scope.row.ship" v-model="scope.row.isEnable" :active-value="1" :inactive-value="0" :active-text="scope.row.isEnable ? '启用' : '禁用'" :disabled="isDetail" @change="switchOff($event,scope.row,scope.$index)"></el-switch>
<span v-else>未发货</span> <span v-else>未发货</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</el-card> </el-card>
<el-card shadow="hover" class="mgb20" v-show="customerId"> <el-card shadow="hover" class="mgb20" v-show="customerId">
<div class="flex-center mgb20 user_header"> <div class="flex-center mgb20 user_header">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
<span>合同信息</span> <span>合同信息</span>
</div> </div>
<div> <div>
<el-table :data="contractInformations" class="table" stripe header-align="center"> <el-table :data="contractInformations" class="table" stripe header-align="center">
<el-table-column type="index" width="100" label="序号" align="center"> <el-table-column type="index" width="100" label="序号" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="contractNumber" label="合同编号" align="center"> <el-table-column prop="contractNumber" label="合同编号" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="contractName" label="合同名称" align="center"> <el-table-column prop="contractName" label="合同名称" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="endTime" label="合同期限" align="center"> <el-table-column prop="endTime" label="合同期限" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.startTime?scope.row.startTime.split(' ').shift():''}}&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;{{scope.row.endTime?scope.row.endTime.split(' ').shift():''}} {{scope.row.startTime?scope.row.startTime.split(' ').shift():''}}&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;{{scope.row.endTime?scope.row.endTime.split(' ').shift():''}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="dataOrCourseName" label="产品内容" align="center"> <el-table-column prop="dataOrCourseName" label="产品内容" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="contractMoney" label="合同金额" align="center"> <el-table-column prop="contractMoney" label="合同金额" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.contractMoney}}&nbsp;&nbsp; {{scope.row.contractMoney}}&nbsp;&nbsp;
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="showContract(scope.row)">查看</el-button> <el-button type="text" @click="showContract(scope.row)">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</el-card> </el-card>
<!-- 选择IP --> <!-- 选择IP -->
<el-dialog :visible.sync="ipVisible" width="70%" center> <el-dialog :visible.sync="ipVisible" width="70%" center>
<div class="flex-center mgb20"> <div class="flex-center mgb20">
<p class="hr_tag"></p> <p class="hr_tag"></p>
<span>客户列表</span> <span>客户列表</span>
</div> </div>
<el-table :data="IPData" stripe header-align="center"> <el-table :data="IPData" stripe header-align="center">
<el-table-column type="index" width="100" label="序号" align="center"> <el-table-column type="index" width="100" label="序号" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="age" label="服务器名称" align="center"> <el-table-column prop="age" label="服务器名称" align="center">
</el-table-column> </el-table-column>
<el-table-column label="IP" align="center"> <el-table-column label="IP" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="tab_temp"> <div class="tab_temp">
<div class="flex-center"> <div class="flex-center">
<label>内网:</label> <label>内网:</label>
<el-input v-model="scope.row.Intranet" placeholder="请输入IP地址"></el-input> <el-input v-model="scope.row.Intranet" placeholder="请输入IP地址"></el-input>
</div> </div>
<div class="flex-center mar10"> <div class="flex-center mar10">
<label>外网:</label> <label>外网:</label>
<el-input v-model="scope.row.extranet" placeholder="请输入端口号"></el-input> <el-input v-model="scope.row.extranet" placeholder="请输入端口号"></el-input>
</div> </div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="端口" align="center"> <el-table-column label="端口" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="tab_temp"> <div class="tab_temp">
<div class="flex-center"> <div class="flex-center">
<label>内网:</label> <label>内网:</label>
<el-input v-model="scope.row.Intranet" placeholder="请输入内网IP地址"></el-input> <el-input v-model="scope.row.Intranet" placeholder="请输入内网IP地址"></el-input>
</div> </div>
<div class="flex-center mar10"> <div class="flex-center mar10">
<label>外网:</label> <label>外网:</label>
<el-input v-model="scope.row.extranet" placeholder="请输入外网IP地址"></el-input> <el-input v-model="scope.row.extranet" placeholder="请输入外网IP地址"></el-input>
</div> </div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="选择" align="center"> <el-table-column label="选择" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<i class="el-icon-success radio_icon"></i> <i class="el-icon-success radio_icon"></i>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="ipVisible = false"> </el-button> <el-button @click="ipVisible = false"> </el-button>
<el-button type="primary" @click="IPSure()"> </el-button> <el-button type="primary" @click="IPSure()"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog :visible.sync="showImg" width="70%" center> <el-dialog :visible.sync="showImg" width="70%" center>
<img :src="fileSrc" width="100%" alt=""> <img :src="fileSrc" width="100%" alt="">
</el-dialog> </el-dialog>
<pdf :visible.sync="pdfVisible" :src.sync="fileSrc"></pdf> <pdf :visible.sync="pdfVisible" :src.sync="fileSrc"></pdf>
</el-col>
</el-row>
</div> </div>
</template> </template>
@ -660,14 +656,17 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.addhr_tag{ .card {
background-color: #666; min-height: calc(100vh - 260px);
width: 6px; }
height: 17px; .addhr_tag{
margin-right: 5px; background-color: #666;
} width: 6px;
.radio_icon{ height: 17px;
font-size: 26px; margin-right: 5px;
color: #9278FF; }
} .radio_icon{
font-size: 26px;
color: #9278FF;
}
</style> </style>

@ -1,100 +1,94 @@
<template> <template>
<div> <div>
<el-row :gutter="20"> <el-card shadow="hover" class="mgb20">
<el-col :span="24"> <div>
<el-card shadow="hover" class="mgb20"> <div class="flex-center mgb20">
<div> <p class="hr_tag"></p>
<div class="flex-center mgb20"> <span>筛选</span>
<p class="hr_tag"></p> </div>
<span>筛选</span> <div>
</div> <el-form label-width="80px">
<div> <el-col :span="4">
<el-form label-width="80px"> <el-form-item label="国家">
<el-col :span="4"> <el-select v-model="form.countries" placeholder="请选择国家">
<el-form-item label="国家"> <el-option v-for="(item,index) in countryList" :key="index" :label="item.name" :value="item.name"></el-option>
<el-select v-model="form.countries" placeholder="请选择国家"> </el-select>
<el-option v-for="(item,index) in countryList" :key="index" :label="item.name" :value="item.name"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="4">
</el-col> <el-form-item label="省份">
<el-col :span="4"> <el-select v-model="form.provinces" clearable placeholder="请选择省份" @change="getCity" @clear="clearprovince">
<el-form-item label="省份"> <el-option v-for="(item,index) in provinceList" :key="index" :label="item.provinceName" :value="item.provinceId"></el-option>
<el-select v-model="form.provinces" clearable placeholder="请选择省份" @change="getCity" @clear="clearprovince"> </el-select>
<el-option v-for="(item,index) in provinceList" :key="index" :label="item.provinceName" :value="item.provinceId"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="4">
</el-col> <el-form-item label="城市">
<el-col :span="4"> <el-select v-model="form.city" clearable placeholder="请选择城市" :disabled="form.provinces ? false : true" @change="initData">
<el-form-item label="城市"> <el-option v-for="(item,index) in cityList" :key="index" :label="item.cityName" :value="item.cityId"></el-option>
<el-select v-model="form.city" clearable placeholder="请选择城市" :disabled="form.provinces ? false : true" @change="initData"> </el-select>
<el-option v-for="(item,index) in cityList" :key="index" :label="item.cityName" :value="item.cityId"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="6">
</el-col> <el-form-item>
<el-col :span="6"> <el-input placeholder="支持客户,联系人,账号搜索" prefix-icon="el-icon-search" v-model="form.keyword" clearable></el-input>
<el-form-item> </el-form-item>
<el-input placeholder="支持客户,联系人,账号搜索" prefix-icon="el-icon-search" v-model="form.keyword" clearable></el-input> </el-col>
</el-form-item> </el-form>
</el-col> </div>
</el-form> </div>
</div> </el-card>
</div>
</el-card>
</el-col>
<el-col :span="24"> <el-card shadow="hover" class="card">
<el-card shadow="hover" class="mgb20"> <div class="flex-between mgb20">
<div class="flex-between mgb20"> <div class="flex-center">
<div class="flex-center"> <p class="hr_tag"></p>
<p class="hr_tag"></p> <span>客户列表</span>
<span>客户列表</span> </div>
</div> <div>
<div> <el-button type="primary" round class="mag" @click="addcustomer" v-auth>新增</el-button>
<el-button type="primary" round class="mag" @click="addcustomer" v-auth>新增</el-button> <el-button type="primary" round @click="delAllSelection" v-auth>批量删除</el-button>
<el-button type="primary" round @click="delAllSelection" v-auth>批量删除</el-button> </div>
</div> </div>
</div> <el-table v-loading="loading" :data="listData" class="table" ref="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="customerId">
<el-table v-loading="loading" :data="listData" class="table" ref="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="customerId"> <el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column>
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column> <el-table-column type="index" width="100" label="序号" align="center">
<el-table-column type="index" width="100" label="序号" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> {{scope.$index + (page - 1) * pageSize + 1}}
{{scope.$index + (page - 1) * pageSize + 1}} </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="customerName" label="客户名称" align="center">
<el-table-column prop="customerName" label="客户名称" align="center"> </el-table-column>
</el-table-column> <el-table-column label="行业" align="center">
<el-table-column label="行业" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <span class="ellipsis">{{scope.row.industryName}}</span>
<span class="ellipsis">{{scope.row.industryName}}</span> </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="countries" label="国家" align="center">
<el-table-column prop="countries" label="国家" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="provinceName" label="省份" align="center">
<el-table-column prop="provinceName" label="省份" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="cityName" label="城市" align="center">
<el-table-column prop="cityName" label="城市" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="name" label="联系人" align="center">
<el-table-column prop="name" label="联系人" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="account" label="账号" align="center">
<el-table-column prop="account" label="账号" align="center"> </el-table-column>
</el-table-column> <el-table-column label="操作" width="270" align="center">
<el-table-column label="操作" width="270" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <el-button type="text" @click="resetPassword(scope.row)" v-auth>重置密码</el-button>
<el-button type="text" @click="resetPassword(scope.row)" v-auth>重置密码</el-button> <el-button type="text" @click="show(scope.row)" v-auth>查看</el-button>
<el-button type="text" @click="show(scope.row)" v-auth>查看</el-button> <el-button type="text" @click="edit(scope.row)" v-auth>编辑</el-button>
<el-button type="text" @click="edit(scope.row)" v-auth>编辑</el-button> <el-button type="text" @click="handleDelete(scope.row)" v-auth>删除</el-button>
<el-button type="text" @click="handleDelete(scope.row)" v-auth>删除</el-button> <el-button type="text" @click="permission(scope.row)" v-auth>应用权限</el-button>
<el-button type="text" @click="permission(scope.row)" v-auth>应用权限</el-button> </template>
</template> </el-table-column>
</el-table-column> </el-table>
</el-table> <div class="pagination">
<div class="pagination"> <el-pagination background layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" :current-page="page">
<el-pagination background layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" :current-page="page"> </el-pagination>
</el-pagination> </div>
</div> </el-card>
</el-card>
</el-col>
</el-row>
</div> </div>
</template> </template>
@ -263,6 +257,8 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.card {
min-height: calc(100vh - 300px);
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class="Achievement-container"> <div class="wrap">
<div class="tabs" v-if="showTabs"> <div class="tabs" v-if="showTabs">
<a class="item" v-for="(item,index) in tabs" :key="index" :class="{active: index == active}" @click="tabChange(index)">{{item}}</a> <a class="item" v-for="(item,index) in tabs" :key="index" :class="{active: index == active}" @click="tabChange(index)">{{item}}</a>
</div> </div>
@ -64,8 +64,8 @@ export default {
}; };
</script> </script>
<style lang="scss" scopted> <style lang="scss" scoped>
.Achievement-container { .wrap {
width: 100%; width: 100%;
box-shadow: 0px 0px 21px 0px rgba(48, 115, 248, 0.1); box-shadow: 0px 0px 21px 0px rgba(48, 115, 248, 0.1);
text-align: center; text-align: center;
@ -84,8 +84,7 @@ export default {
} }
} }
.score-table { .score-table {
margin: 0 auto; margin: 18px auto 0;
margin-top: 18px;
position: relative; position: relative;
.block { .block {
position: absolute; position: absolute;
@ -98,7 +97,7 @@ export default {
color: #fff; color: #fff;
} }
} }
.tabs{ /deep/.tabs{
display: flex; display: flex;
align-items: center; align-items: center;
padding: 20px 1.5% 20px; padding: 20px 1.5% 20px;

@ -740,39 +740,39 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.wrap, .el-container{ .wrap, .el-container{
min-height: calc(100vh - 290px); min-height: calc(100vh - 290px);
} }
.el-aside, .main-wrap{ .el-aside, .main-wrap{
height: calc(100vh - 290px); height: calc(100vh - 290px);
overflow: auto; overflow: auto;
} }
/deep/.el-container{ /deep/.el-container{
height: 100%; height: 100%;
padding-bottom: 0; padding-bottom: 0;
.el-aside{ .el-aside{
padding: 15px; padding: 15px;
background-color: #fff; background-color: #fff;
.plus{ .plus{
text-align: right; text-align: right;
color: #9278FF; color: #9278FF;
cursor: pointer; cursor: pointer;
} }
.custom-tree-node{ .custom-tree-node{
flex: 1; flex: 1;
display: inline-flex; display: inline-flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.actions{ .actions{
i{ i{
margin-left: 5px; margin-left: 5px;
color: #9278FF; color: #9278FF;
}
} }
} }
} }
.el-main{
height: 100%;
}
} }
.el-main{
height: 100%;
}
}
</style> </style>

@ -6,51 +6,49 @@
</el-aside> </el-aside>
<el-main style="padding-top: 0"> <el-main style="padding-top: 0">
<el-col :span="24"> <el-card shadow="hover" class="card">
<el-card shadow="hover" class="mgb20 teacher_tab"> <div class="flex-between" style="margin-bottom: 10px;">
<div class="flex-between" style="margin-bottom: 10px;"> <p>数据简介</p>
<p>数据简介</p> <el-button v-if="introduceText && !editing" type="primary" @click="editing = !editing" v-auth="'/data:数据简介:编辑'">编辑</el-button>
<el-button v-if="introduceText && !editing" type="primary" @click="editing = !editing" v-auth="'/data:数据简介:编辑'">编辑</el-button> </div>
<div class="intro" v-if="!introduceText && !editing">
<p class="text">请添加简介</p>
<div class="btn">
<el-button type="primary" @click="edit">添加</el-button>
</div> </div>
<div class="intro" v-if="!introduceText && !editing"> </div>
<p class="text">请添加简介</p> <template v-if="introduceText || editing">
<div class="btn"> <el-input placeholder="请输入简介" v-model="introduce" type="textarea" rows="5" :disabled="!editing"></el-input>
<el-button type="primary" @click="edit">添加</el-button>
</div>
</div>
<template v-if="introduceText || editing">
<el-input placeholder="请输入简介" v-model="introduce" type="textarea" rows="5" :disabled="!editing"></el-input>
<div class="field">
<p class="label">数据源</p>
<el-input style="width: 250px" placeholder="请输入数据源" v-model="dataSource" type="text" :disabled="!editing"></el-input>
</div>
</template>
<div class="field"> <div class="field">
<p class="label">关键字</p> <p class="label">数据源</p>
<div class="tag-add" v-if="editing"> <el-input style="width: 250px" placeholder="请输入数据源" v-model="dataSource" type="text" :disabled="!editing"></el-input>
<el-input placeholder="请输入关键字" size="small" v-model="newKeyword"></el-input> </div>
<span v-if="editing"> </template>
<el-button @click="save" style="color: #9076FF;border: 1px solid #9076FF;border-radius:5px;height: 25px;line-height: 0px"> </el-button> <div class="field">
</span> <p class="label">关键字</p>
</div> <div class="tag-add" v-if="editing">
<div class="tag-wrap"> <el-input placeholder="请输入关键字" size="small" v-model="newKeyword"></el-input>
<el-tag <span v-if="editing">
:key="tag.id" <el-button @click="save" style="color: #9076FF;border: 1px solid #9076FF;border-radius:5px;height: 25px;line-height: 0px"> </el-button>
:type="editing ? '' : 'info'" </span>
v-for="tag in keywordList"
:closable="editing"
:disable-transitions="false"
@close="delKeyword(tag)">
{{tag.keyword}}
</el-tag>
</div>
</div> </div>
<div class="btns" v-if="editing"> <div class="tag-wrap">
<el-button @click="editing = false"> </el-button> <el-tag
<el-button type="primary" @click="confirmData"> </el-button> :key="tag.id"
:type="editing ? '' : 'info'"
v-for="tag in keywordList"
:closable="editing"
:disable-transitions="false"
@close="delKeyword(tag)">
{{tag.keyword}}
</el-tag>
</div> </div>
</el-card> </div>
</el-col> <div class="btns" v-if="editing">
<el-button @click="editing = false"> </el-button>
<el-button type="primary" @click="confirmData"> </el-button>
</div>
</el-card>
</el-main> </el-main>
</el-container> </el-container>
</div> </div>
@ -216,64 +214,68 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
/deep/.el-container{ .el-aside, .card {
background-color: #f0f0f0; height: calc(100vh - 290px);
.el-aside{ overflow: auto;
padding: 15px; }
background-color: #fff; /deep/.el-container{
} background-color: #f0f0f0;
.intro{ .el-aside{
padding: 20px; padding: 15px;
margin: 20px 0; background-color: #fff;
border: 1px solid #dcdcdc; }
border-radius: 4px; .intro{
.text{ padding: 20px;
margin-bottom: 20px; margin: 20px 0;
} border: 1px solid #dcdcdc;
} border-radius: 4px;
.field { .text{
margin-top: 20px; margin-bottom: 20px;
text-align: left;
.label {
margin-bottom: 10px;
}
}
.tag-wrap {
display: flex;
align-items: center;
} }
.btns{ }
margin-top: 20px; .field {
margin-top: 20px;
text-align: left;
.label {
margin-bottom: 10px;
} }
} }
.tag-add { .tag-wrap {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 10px;
.el-input {
width: 200px;
}
.el-button {
margin-left: 5px;
}
}
.mag{
margin-right: 20px;
margin-left: 20px;
} }
.el-tag + .el-tag { .btns{
margin-left: 10px; margin-top: 20px;
} }
.button-new-tag { }
margin-left: 10px; .tag-add {
height: 32px; display: flex;
line-height: 30px; align-items: center;
padding-top: 0; margin-bottom: 10px;
padding-bottom: 0; .el-input {
width: 200px;
} }
.input-new-tag { .el-button {
width: 90px; margin-left: 5px;
margin-left: 10px;
vertical-align: bottom;
} }
}
.mag{
margin-right: 20px;
margin-left: 20px;
}
.el-tag + .el-tag {
margin-left: 10px;
}
.button-new-tag {
margin-left: 10px;
height: 32px;
line-height: 30px;
padding-top: 0;
padding-bottom: 0;
}
.input-new-tag {
width: 90px;
margin-left: 10px;
vertical-align: bottom;
}
</style> </style>

@ -1,74 +1,68 @@
<template> <template>
<div> <div>
<el-row :gutter="20"> <el-card shadow="hover" class="mgb20">
<el-col :span="24"> <div>
<el-card shadow="hover" class="mgb20"> <div class="flex-center mgb20">
<div> <p class="hr_tag"></p>
<div class="flex-center mgb20"> <span>筛选</span>
<p class="hr_tag"></p> </div>
<span>筛选</span> <div>
<el-form label-width="80px" class="flex-between">
<div class="flex-center no-mb">
<el-form-item label="创建日期">
<el-date-picker v-model="date" align="right" unlink-panels type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" clearable></el-date-picker>
</el-form-item>
<el-form-item label="状态">
<el-select v-model="status" clearable placeholder="请选择状态" @change="initData">
<el-option v-for="(item,index) in statusList" :key="index" :label="item.name" :value="item.value"></el-option>
</el-select>
</el-form-item>
</div> </div>
<div> <el-form-item>
<el-form label-width="80px" class="flex-between"> <el-input placeholder="请输入产品名称" prefix-icon="el-icon-search" v-model="keyword" clearable></el-input>
<div class="flex-center no-mb"> </el-form-item>
<el-form-item label="创建日期"> </el-form>
<el-date-picker v-model="date" align="right" unlink-panels type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" clearable></el-date-picker> </div>
</el-form-item> </div>
<el-form-item label="状态"> </el-card>
<el-select v-model="status" clearable placeholder="请选择状态" @change="initData">
<el-option v-for="(item,index) in statusList" :key="index" :label="item.name" :value="item.value"></el-option>
</el-select>
</el-form-item>
</div>
<el-form-item>
<el-input placeholder="请输入产品名称" prefix-icon="el-icon-search" v-model="keyword" clearable></el-input>
</el-form-item>
</el-form>
</div>
</div>
</el-card>
</el-col>
<el-col :span="24"> <el-card shadow="hover" class="card">
<el-card shadow="hover" class="mgb20"> <div class="flex-between mgb20">
<div class="flex-between mgb20"> <div class="flex-center">
<div class="flex-center"> <p class="hr_tag"></p>
<p class="hr_tag"></p> <span>产品列表</span>
<span>产品列表</span> </div>
</div> <div>
<div> <el-button type="primary" round @click="add" v-auth="'/data:产品管理:新增'">新增</el-button>
<el-button type="primary" round @click="add" v-auth="'/data:产品管理:新增'">新增</el-button> <el-button type="primary" round @click="delAllSelection" v-auth="'/data:产品管理:批量删除'">批量删除</el-button>
<el-button type="primary" round @click="delAllSelection" v-auth="'/data:产品管理:批量删除'">批量删除</el-button> </div>
</div> </div>
</div> <el-table :data="listData" class="table" ref="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="id">
<el-table :data="listData" class="table" ref="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="id"> <el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column>
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column> <el-table-column type="index" width="100" label="序号" align="center"></el-table-column>
<el-table-column type="index" width="100" label="序号" align="center"></el-table-column> <el-table-column prop="productName" label="产品名称" align="center"></el-table-column>
<el-table-column prop="productName" label="产品名称" align="center"></el-table-column> <el-table-column prop="tableNum" label="数据量(表)" align="center"></el-table-column>
<el-table-column prop="tableNum" label="数据量(表)" align="center"></el-table-column> <el-table-column prop="userName" label="创建人" align="center"></el-table-column>
<el-table-column prop="userName" label="创建人" align="center"></el-table-column> <el-table-column prop="orderNum" label="订单数量" align="center"></el-table-column>
<el-table-column prop="orderNum" label="订单数量" align="center"></el-table-column> <el-table-column prop="market" label="市场价(元)" align="center"></el-table-column>
<el-table-column prop="market" label="市场价(元)" align="center"></el-table-column> <el-table-column prop="createTime" label="创建时间" align="center"></el-table-column>
<el-table-column prop="createTime" label="创建时间" align="center"></el-table-column> <el-table-column prop="orderNature" label="状态" align="center">
<el-table-column prop="orderNature" label="状态" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <el-switch v-model="scope.row.status" :active-text="scope.row.status ? '上架' : '下架'" :active-value="1" :inactive-value="0" @change="switchOff($event,scope.row,scope.$index)" v-auth="'/data:产品管理:上架'"></el-switch>
<el-switch v-model="scope.row.status" :active-text="scope.row.status ? '上架' : '下架'" :active-value="1" :inactive-value="0" @change="switchOff($event,scope.row,scope.$index)" v-auth="'/data:产品管理:上架'"></el-switch> </template>
</template> </el-table-column>
</el-table-column> <el-table-column label="操作">
<el-table-column label="操作"> <template slot-scope="scope">
<template slot-scope="scope"> <el-button type="text" @click="preview(scope.row)" v-auth="'/data:产品管理:预览'">预览</el-button>
<el-button type="text" @click="preview(scope.row)" v-auth="'/data:产品管理:预览'">预览</el-button> <el-button type="text" @click="edit(scope.row)" v-auth="'/data:产品管理:编辑'">编辑</el-button>
<el-button type="text" @click="edit(scope.row)" v-auth="'/data:产品管理:编辑'">编辑</el-button> <el-button type="text" @click="handleDelete(scope.row)" v-auth="'/data:产品管理:删除'">删除</el-button>
<el-button type="text" @click="handleDelete(scope.row)" v-auth="'/data:产品管理:删除'">删除</el-button> </template>
</template> </el-table-column>
</el-table-column> </el-table>
</el-table> <div class="pagination">
<div class="pagination"> <el-pagination background layout="total, prev, pager, next" @current-change="handleCurrentChange" :current-page="page" :total="totals"></el-pagination>
<el-pagination background layout="total, prev, pager, next" @current-change="handleCurrentChange" :current-page="page" :total="totals"></el-pagination> </div>
</div> </el-card>
</el-card>
</el-col>
</el-row>
<el-dialog :title="isDetail ? '查看产品' : (id ? '编辑产品' : '新增产品')" :visible.sync="productVisible" width="30%" center @close="closeProduct" class="dialog" :close-on-click-modal="false"> <el-dialog :title="isDetail ? '查看产品' : (id ? '编辑产品' : '新增产品')" :visible.sync="productVisible" width="30%" center @close="closeProduct" class="dialog" :close-on-click-modal="false">
<el-form ref="form" label-width="98px" :disabled="isDetail"> <el-form ref="form" label-width="98px" :disabled="isDetail">
@ -641,20 +635,23 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
/deep/ .no-mb .el-form-item{ .card {
margin-bottom: 0; min-height: calc(100vh - 420px);
} }
/deep/.el-input--suffix .el-input__inner{ /deep/ .no-mb .el-form-item{
padding-right: 56px; margin-bottom: 0;
} }
/deep/.el-container{ /deep/.el-input--suffix .el-input__inner{
.el-aside{ padding-right: 56px;
padding: 15px; }
background-color: #fff; /deep/.el-container{
} .el-aside{
} padding: 15px;
.type-wrap{ background-color: #fff;
height: 450px;
overflow:auto;
} }
}
.type-wrap{
height: 450px;
overflow:auto;
}
</style> </style>

@ -115,7 +115,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="productName" label="课程名称" align="center" min-width="150" show-overflow-tooltip> <el-table-column prop="productName" label="课程名称" align="center" min-width="150" show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column label="使用期限" align="center" min-width="170"> <el-table-column label="使用期限" align="center" min-width="190">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="small"> <div class="small">
<el-input <el-input
@ -178,7 +178,7 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="成交价" align="center" min-width="110"> <el-table-column label="成交价" align="center" min-width="130">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="small"> <div class="small">
<el-input :class="scope.row.finalPrice === '' && whetherSubmit?'red':''" <el-input :class="scope.row.finalPrice === '' && whetherSubmit?'red':''"
@ -202,7 +202,7 @@
<el-button @click="configure(scope.row)">配置</el-button> <el-button @click="configure(scope.row)">配置</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="240"> <el-table-column label="操作" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="flex-c-c"> <div class="flex-c-c">
<el-button <el-button
@ -255,7 +255,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="productName" label="产品名称" align="center" min-width="100"> <el-table-column prop="productName" label="产品名称" align="center" min-width="100">
</el-table-column> </el-table-column>
<el-table-column label="使用期限" align="center" min-width="150"> <el-table-column label="使用期限" align="center" min-width="190">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="small"> <div class="small">
<el-input onkeyup="value=this.value.replace(/\D+/g,'')" <el-input onkeyup="value=this.value.replace(/\D+/g,'')"
@ -338,7 +338,7 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="账号数" align="center" min-width="80"> <el-table-column label="账号数" align="center" min-width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="small"> <div class="small">
<el-input :class="!scope.row.accountNum&&whetherSubmit?'red':''" <el-input :class="!scope.row.accountNum&&whetherSubmit?'red':''"
@ -352,7 +352,7 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- 金额自动计算计算方式账号数*成交价且可以手动修改保留两位小数 --> <!-- 金额自动计算计算方式账号数*成交价且可以手动修改保留两位小数 -->
<el-table-column label="总金额(元)" align="center" min-width="100"> <el-table-column label="总金额(元)" align="center" min-width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="small"> <div class="small">
<el-input :class="scope.row.totalAmount === '' && whetherSubmit?'red':''" <el-input :class="scope.row.totalAmount === '' && whetherSubmit?'red':''"
@ -364,7 +364,7 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="240"> <el-table-column label="操作" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="flex-c-c"> <div class="flex-c-c">
<el-button <el-button

@ -1,128 +1,122 @@
<template> <template>
<div> <div>
<el-row :gutter="20"> <el-card shadow="hover" class="mgb20">
<el-col :span="24"> <div>
<el-card shadow="hover" class="mgb20"> <div class="flex-center mgb20">
<div> <p class="hr_tag"></p>
<div class="flex-center mgb20"> <span>筛选</span>
<p class="hr_tag"></p> </div>
<span>筛选</span> <div>
</div> <el-form label-width="80px">
<div> <el-col :span="4">
<el-form label-width="80px"> <el-form-item label="省份">
<el-col :span="4"> <el-select v-model="form.provinces" clearable placeholder="请选择省份"
<el-form-item label="省份"> @change="getCity()" @clear="clearprovince()">
<el-select v-model="form.provinces" clearable placeholder="请选择省份" <el-option v-for="(item,index) in provinceList" :key="index"
@change="getCity()" @clear="clearprovince()"> :label="item.provinceName" :value="item.provinceId"></el-option>
<el-option v-for="(item,index) in provinceList" :key="index" </el-select>
:label="item.provinceName" :value="item.provinceId"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="4">
</el-col> <el-form-item label="城市">
<el-col :span="4"> <el-select v-model="form.city" clearable placeholder="请选择城市"
<el-form-item label="城市"> :disabled="form.provinces ? false : true" @change="getData()">
<el-select v-model="form.city" clearable placeholder="请选择城市" <el-option v-for="(item,index) in cityList" :key="index"
:disabled="form.provinces ? false : true" @change="getData()"> :label="item.cityName" :value="item.cityId"></el-option>
<el-option v-for="(item,index) in cityList" :key="index" </el-select>
:label="item.cityName" :value="item.cityId"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="4">
</el-col> <el-form-item label="订单类型">
<el-col :span="4"> <el-select v-model="form.orderType" clearable placeholder="请选择订单类型"
<el-form-item label="订单类型"> @change="getData()">
<el-select v-model="form.orderType" clearable placeholder="请选择订单类型" <el-option v-for="(item,index) in orderTypeList" :key="index"
@change="getData()"> :label="item.name" :value="item.value"></el-option>
<el-option v-for="(item,index) in orderTypeList" :key="index" </el-select>
:label="item.name" :value="item.value"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="4">
</el-col> <el-form-item label="订单状态">
<el-col :span="4"> <el-select v-model="form.orderStatus" clearable placeholder="请选择订单状态"
<el-form-item label="订单状态"> @change="getData()">
<el-select v-model="form.orderStatus" clearable placeholder="请选择订单状态" <el-option v-for="(item,index) in orderStatusList" :key="index"
@change="getData()"> :label="item.name" :value="item.value"></el-option>
<el-option v-for="(item,index) in orderStatusList" :key="index" </el-select>
:label="item.name" :value="item.value"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="6">
</el-col> <el-form-item>
<el-col :span="6"> <el-input placeholder="请输入订单号/客户名称/订单名称" prefix-icon="el-icon-search" v-model="keyword" clearable></el-input>
<el-form-item> </el-form-item>
<el-input placeholder="请输入订单号/客户名称/订单名称" prefix-icon="el-icon-search" v-model="keyword" clearable></el-input> </el-col>
</el-form-item> </el-form>
</el-col> </div>
</el-form> </div>
</div> </el-card>
</div>
</el-card>
</el-col>
<el-col :span="24"> <el-card shadow="hover" class="card">
<el-card shadow="hover" class="mgb20"> <div class="flex-between mgb20">
<div class="flex-between mgb20"> <div class="flex-center">
<div class="flex-center"> <p class="hr_tag"></p>
<p class="hr_tag"></p> <span>订单列表</span>
<span>订单列表</span> </div>
</div> <div>
<div> <el-button type="primary" round @click="addOrder()" v-auth>新建订单</el-button>
<el-button type="primary" round @click="addOrder()" v-auth>新建订单</el-button> <el-button type="primary" round @click="delAllSelection" v-auth>批量删除</el-button>
<el-button type="primary" round @click="delAllSelection" v-auth>批量删除</el-button> </div>
</div> </div>
</div> <el-table :data="orderData" class="table" ref="table" stripe header-align="center"
<el-table :data="orderData" class="table" ref="table" stripe header-align="center" @selection-change="handleSelectionChange" :row-key="getRowKeys">
@selection-change="handleSelectionChange" :row-key="getRowKeys"> <el-table-column type="selection" width="55" align="center"
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column>
:reserve-selection="true"></el-table-column> <el-table-column type="index" width="100" label="序号" align="center">
<el-table-column type="index" width="100" label="序号" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="orderNumber" label="订单编号" align="center">
<el-table-column prop="orderNumber" label="订单编号" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="customerName" label="客户名称" align="center">
<el-table-column prop="customerName" label="客户名称" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="orderContent" label="订单内容" align="center">
<el-table-column prop="orderContent" label="订单内容" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <el-popover trigger="hover" placement="top" style='width: 500px' v-if='scope.row.orderContent.length >14'>
<el-popover trigger="hover" placement="top" style='width: 500px' v-if='scope.row.orderContent.length >14'> <p> {{ scope.row.orderContent }}</p>
<p> {{ scope.row.orderContent }}</p> <div slot="reference" class="name-wrapper">
<div slot="reference" class="name-wrapper"> <el-tag size="medium" class='tags'>{{ scope.row.orderContent }}</el-tag>
<el-tag size="medium" class='tags'>{{ scope.row.orderContent }}</el-tag> </div>
</div> </el-popover>
</el-popover> <span v-else>
<span v-else> {{ scope.row.orderContent }}
{{ scope.row.orderContent }} </span>
</span> </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="orderAmount" label="订单金额(元)" align="center">
<el-table-column prop="orderAmount" label="订单金额(元)" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="createTime" label="订单日期" align="center">
<el-table-column prop="createTime" label="订单日期" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="orderType" label="订单类型" align="center">
<el-table-column prop="orderType" label="订单类型" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="orderStatus" label="订单状态" align="center">
<el-table-column prop="orderStatus" label="订单状态" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="orderNature" label="订单性质" align="center">
<el-table-column prop="orderNature" label="订单性质" align="center"> </el-table-column>
</el-table-column> <el-table-column label="操作" align="center">
<el-table-column label="操作" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <el-button type="text" v-if="scope.row.isDel!==1" @click="handle('edit',scope.row)" v-auth="'/order:修改'">
<el-button type="text" v-if="scope.row.isDel!==1" @click="handle('edit',scope.row)" v-auth="'/order:修改'"> {{ scope.row.orderStatus === "已完成" ? "修改" : "处理" }}
{{ scope.row.orderStatus === "已完成" ? "修改" : "处理" }} </el-button>
</el-button> <el-button type="text" @click="handle('watch',scope.row)" v-auth>查看</el-button>
<el-button type="text" @click="handle('watch',scope.row)" v-auth>查看</el-button> <el-button type="text" @click="handleDelete(scope.row)" v-auth>删除</el-button>
<el-button type="text" @click="handleDelete(scope.row)" v-auth>删除</el-button> <el-button type="text" v-if="scope.row.orderStatus==='已完成'&&scope.row.isDel!==1"
<el-button type="text" v-if="scope.row.orderStatus==='已完成'&&scope.row.isDel!==1" @click="handle('renew',scope.row)" v-auth>续费
@click="handle('renew',scope.row)" v-auth>续费 </el-button>
</el-button> </template>
</template> </el-table-column>
</el-table-column> </el-table>
</el-table> <div class="pagination">
<div class="pagination"> <el-pagination background layout="total, prev, pager, next"
<el-pagination background layout="total, prev, pager, next" @current-change="handleCurrentChange" :current-page="pageNo" :total="totals">
@current-change="handleCurrentChange" :current-page="pageNo" :total="totals"> </el-pagination>
</el-pagination> </div>
</div> </el-card>
</el-card>
</el-col>
</el-row>
</div> </div>
</template> </template>
@ -327,6 +321,9 @@ export default {
</script> </script>
<style scoped> <style scoped>
.card {
min-height: calc(100vh - 300px);
}
.mag { .mag {
margin-right: 20px; margin-right: 20px;
} }

@ -1,104 +1,98 @@
<template> <template>
<div> <div>
<el-row :gutter="20"> <el-card shadow="hover" class="mgb20">
<el-col :span="24"> <div>
<el-card shadow="hover" class="mgb20"> <div class="flex-center mgb20">
<div> <p class="hr_tag"></p>
<div class="flex-center mgb20"> <span>筛选</span>
<p class="hr_tag"></p> </div>
<span>筛选</span> <div>
</div> <el-form label-width="80px">
<div> <div>
<el-form label-width="80px"> <el-col :span="4">
<div> <el-form-item label="系统归属">
<el-col :span="4"> <el-select v-model="systemAttribution" clearable placeholder="请选择系统归属"
<el-form-item label="系统归属"> @change="initData">
<el-select v-model="systemAttribution" clearable placeholder="请选择系统归属" <el-option v-for="(item,index) in systemBelongList" :key="index"
@change="initData"> :label="item.label" :value="item.value"></el-option>
<el-option v-for="(item,index) in systemBelongList" :key="index" </el-select>
:label="item.label" :value="item.value"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="4">
</el-col> <el-form-item label="系统类型">
<el-col :span="4"> <el-select v-model="systemType" clearable placeholder="请选择系统类型"
<el-form-item label="系统类型"> @change="initData">
<el-select v-model="systemType" clearable placeholder="请选择系统类型" <el-option v-for="(item,index) in systemTypeList" :key="index"
@change="initData"> :label="item.label" :value="item.value"></el-option>
<el-option v-for="(item,index) in systemTypeList" :key="index" </el-select>
:label="item.label" :value="item.value"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item>
</el-col>
</div>
<el-col :span="6">
<el-form-item>
<el-input placeholder="请输入系统名称" prefix-icon="el-icon-search"
v-model.trim="systemSearch" clearable></el-input>
</el-form-item>
</el-col>
</el-form>
</div> </div>
</div> <el-col :span="6">
</el-card> <el-form-item>
</el-col> <el-input placeholder="请输入系统名称" prefix-icon="el-icon-search"
v-model.trim="systemSearch" clearable></el-input>
</el-form-item>
</el-col>
</el-form>
</div>
</div>
</el-card>
<el-col :span="24"> <el-card shadow="hover" class="card">
<el-card shadow="hover" class="mgb20"> <div class="flex-center mgb20">
<div class="flex-center mgb20"> <p class="hr_tag"></p>
<p class="hr_tag"></p> <span>服务列表</span>
<span>服务列表</span> </div>
</div> <el-table :data="systemData" class="table" stripe header-align="center">
<el-table :data="systemData" class="table" stripe header-align="center"> <!-- <el-table-column type="selection" width="55" align="center"></el-table-column> -->
<!-- <el-table-column type="selection" width="55" align="center"></el-table-column> --> <el-table-column type="index" width="100" label="序号" align="center">
<el-table-column type="index" width="100" label="序号" align="center"> </el-table-column>
</el-table-column> <el-table-column prop="systemName" label="系统名称" align="center"></el-table-column>
<el-table-column prop="systemName" label="系统名称" align="center"></el-table-column> <el-table-column prop="type" label="系统类型" align="center">
<el-table-column prop="type" label="系统类型" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> {{ systemTypeKeys[scope.row.type] }}
{{ systemTypeKeys[scope.row.type] }} </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="belong" label="系统归属" align="center">
<el-table-column prop="belong" label="系统归属" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> {{ systemBelongKeys[scope.row.belong] }}
{{ systemBelongKeys[scope.row.belong] }} </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="state" label="系统状态" align="center">
<el-table-column prop="state" label="系统状态" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> {{ systemStatusKeys[scope.row.state] }}
{{ systemStatusKeys[scope.row.state] }} </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="payamount" label="系统后台" align="center">
<el-table-column prop="payamount" label="系统后台" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <el-button type="text" @click="toBackstage(scope.row)" v-auth="'/configure:系统后台进入'">进入</el-button>
<el-button type="text" @click="toBackstage(scope.row)" v-auth="'/configure:系统后台进入'">进入</el-button> </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="payamount" label="项目系统" align="center">
<el-table-column prop="payamount" label="项目系统" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <el-button type="text" @click="getIntoProject(scope.row)" v-auth="'/configure:项目系统进入'">进入</el-button>
<el-button type="text" @click="getIntoProject(scope.row)" v-auth="'/configure:项目系统进入'">进入</el-button> </template>
</template> </el-table-column>
</el-table-column> <el-table-column prop="payamount" label="判分系统" align="center">
<el-table-column prop="payamount" label="判分系统" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <el-button type="text" @click="getIntoJudgement(scope.row)" v-auth="'/configure:判分系统进入'">进入</el-button>
<el-button type="text" @click="getIntoJudgement(scope.row)" v-auth="'/configure:判分系统进入'">进入</el-button> </template>
</template> </el-table-column>
</el-table-column> <!--
<!-- <el-table-column label="操作" align="center">
<el-table-column label="操作" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <el-button type="text" @click="edit(scope.row)">编辑</el-button>
<el-button type="text" @click="edit(scope.row)">编辑</el-button> </template>
</template> </el-table-column>
</el-table-column> -->
--> </el-table>
</el-table> <div class="pagination">
<div class="pagination"> <el-pagination background @current-change="handleCurrentChange"
<el-pagination background @current-change="handleCurrentChange" layout="total, prev, pager, next" :total="totals">
layout="total, prev, pager, next" :total="totals"> </el-pagination>
</el-pagination> </div>
</div> </el-card>
</el-card>
</el-col>
</el-row>
</div> </div>
</template> </template>
@ -213,7 +207,10 @@ export default {
}; };
</script> </script>
<style scoped> <style lang="scss" scoped>
.card {
min-height: calc(100vh - 300px);
}
.mag { .mag {
margin-right: 20px; margin-right: 20px;
} }

@ -46,5 +46,7 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.page {
min-height: 100%;
}
</style> </style>

@ -14,8 +14,8 @@
</div> </div>
</el-card> </el-card>
<el-card shadow="hover"> <el-card class="page" shadow="hover">
<el-form ref="form" label-width="120px"> <el-form class="form" ref="form" label-width="120px" center>
<el-form-item label="版本标题"> <el-form-item label="版本标题">
<el-input placeholder="请输入版本标题" v-model="form.versionName" maxlength="30" style="width: 400px"></el-input> <el-input placeholder="请输入版本标题" v-model="form.versionName" maxlength="30" style="width: 400px"></el-input>
</el-form-item> </el-form-item>
@ -160,7 +160,8 @@ export default {
versionName, versionName,
coverUrl: this.form.coverUrl, coverUrl: this.form.coverUrl,
logContents, logContents,
draft // 0:1:稿 open: draft, // 0:1:
draft // 0:1:稿
} }
if (id) { if (id) {
data.logId = id data.logId = id
@ -180,6 +181,11 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.page {
display: flex;
justify-content: center;
min-height: calc(100vh - 310px);
}
$avatar-width: 104px; $avatar-width: 104px;
/deep/ .avatar-uploader { /deep/ .avatar-uploader {
.el-upload { .el-upload {

@ -1,5 +1,5 @@
<template> <template>
<div class="page" style="padding: 0"> <div class="page system" style="padding: 0">
<div class="tabs"> <div class="tabs">
<a class="item" v-for="(item,index) in tabs" :key="index" :class="{active: index == active}" @click="tabChange(index)">{{ item }}</a> <a class="item" v-for="(item,index) in tabs" :key="index" :class="{active: index == active}" @click="tabChange(index)">{{ item }}</a>
</div> </div>
@ -72,5 +72,7 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.system {
min-height: calc(100vh - 170px);
}
</style> </style>

@ -5,52 +5,55 @@
<div class="per_title" v-preventReClick @click="$router.back()"> <div class="per_title" v-preventReClick @click="$router.back()">
<i class="el-icon-arrow-left"></i> <i class="el-icon-arrow-left"></i>
<span class="per_back">返回</span> <span class="per_back">返回</span>
<span class="per_school">日志更新</span> <span class="per_school">职站日志管理</span>
</div> </div>
</div> </div>
</el-card> </el-card>
<div class="page"> <div class="page">
<div class="tool"> <div class="inner">
<div class="filters"> <div class="tool">
<div class="filter"> <div class="filters">
<label>版本查询</label> <h6>日志更新</h6>
<el-select v-model="versionName" size="small" placeholder="请选择版本" filterable @change="verChange"> <div class="filter">
<el-option <label>版本查询</label>
v-for="item in vers" <el-select v-model="versionName" size="small" placeholder="请选择版本" filterable @change="verChange">
:key="item.id" <el-option
:label="item.name" v-for="item in vers"
:value="item.id"> :key="item.id"
</el-option> :label="item.name"
</el-select> :value="item.id">
</div> </el-option>
</div> </el-select>
<div> </div>
<el-button type="primary" @click="add" v-auth="'/system:日志更新:管理:新增日志'">新增日志</el-button> </div>
</div> <div>
</div> <el-button type="primary" @click="add" v-auth="'/system:日志更新:管理:新增日志'">新增日志</el-button>
<el-timeline class="timeline"> </div>
<el-timeline-item placement="top" v-for="(item, i) in listData" :key="i"> </div>
<p :class="['sign', {draft: item.draft}]" :id="'ver' + i">{{ item.draft ? '未发布' : item.updateTime }}</p> <el-timeline class="timeline">
<div class="ver"> <el-timeline-item placement="top" v-for="(item, i) in listData" :key="i" :class="{draft: item.draft}">
<div> <p class="sign" :id="'ver' + i">{{ item.draft ? '未发布' : item.updateTime }}</p>
{{ platformName + item.versionName }} <div class="ver">
<span class="action"> <div>
<i class="el-icon-edit-outline" @click="edit(item)" v-auth="'/system:日志更新:管理:编辑日志'"></i> {{ platformName + item.versionName + (item.draft ? '(草稿)' : '') }}
<i class="el-icon-delete" @click="del(item)" v-auth="'/system:日志更新:管理:删除日志'"></i> <span class="action">
</span> <i class="el-icon-edit-outline" @click="edit(item)" v-auth="'/system:日志更新:管理:编辑日志'"></i>
</div> <i class="el-icon-delete" @click="del(item)" v-auth="'/system:日志更新:管理:删除日志'"></i>
<el-switch v-model="item.open" :active-value="0" :inactive-value="1" @change="switchOff($event, item)" v-auth="'/system:日志更新:管理:开启日志'"></el-switch> </span>
</div> </div>
<ul class="detail"> <el-switch v-model="item.open" :active-value="0" :inactive-value="1" @change="switchOff($event, item)" v-auth="'/system:日志更新:管理:开启日志'"></el-switch>
<li v-for="(item, i) in item.logContents" :key="i"> </div>
<p class="name">{{ funcList.find(e => e.id === item.type).name }}</p> <ul class="detail">
<div class="val"> <li v-for="(item, i) in item.logContents" :key="i">
<p class="" v-for="(item, i) in item.content" :key="i">{{ item }}</p> <p class="name">{{ funcList.find(e => e.id === item.type).name }}</p>
</div> <div class="val">
</li> <p class="" v-for="(item, i) in item.content" :key="i">{{ item }}</p>
</ul> </div>
</el-timeline-item> </li>
</el-timeline> </ul>
</el-timeline-item>
</el-timeline>
</div>
</div> </div>
</div> </div>
</template> </template>
@ -109,7 +112,15 @@ export default {
}, },
// //
add() { add() {
this.$router.push(`/addLog?platformId=${this.platformId}`) if (this.listData.find(e => e.draft)) {
this.$confirm("当前有未发布的版本,是否要新增版本?", "提示", {
type: "warning"
}).then(() => {
this.$router.push(`/addLog?platformId=${this.platformId}`)
}).catch(() => {})
} else {
this.$router.push(`/addLog?platformId=${this.platformId}`)
}
}, },
// //
edit(item) { edit(item) {
@ -144,7 +155,12 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.page { .page {
padding: 24px 200px; min-height: calc(100vh - 300px);
padding: 24px 0;
.inner {
width: 1100px;
margin: 0 auto;
}
} }
.tool { .tool {
padding-bottom: 20px; padding-bottom: 20px;
@ -154,18 +170,21 @@ export default {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
h6 { h6 {
margin-right: 100px;
font-size: 18px; font-size: 18px;
} }
} }
.timeline { .timeline {
margin-left: 20%; margin-left: 20%;
.sign { .sign {
margin: -11px 0 0 -10%; margin: -11px 0 0 -16%;
font-size: 14px; font-size: 14px;
color: #9076FF; color: #9076FF;
} }
.draft { .draft {
color: #ccc; .ver, .sign {
color: #b1b1b1;
}
} }
.ver { .ver {
display: flex; display: flex;
@ -179,8 +198,9 @@ export default {
.action { .action {
margin-left: 15px; margin-left: 15px;
i { i {
margin-left: 5px; margin-left: 8px;
font-size: 14px; font-size: 14px;
color: #9076FF;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
opacity: .9; opacity: .9;

@ -1,142 +1,136 @@
<template> <template>
<div> <div>
<el-row :gutter="20"> <el-card shadow="hover" class="mgb20">
<el-col :span="24"> <div>
<el-card shadow="hover" class="mgb20"> <div class="flex-center mgb20">
<div> <p class="hr_tag"></p>
<div class="flex-center mgb20"> <span>筛选</span>
<p class="hr_tag"></p> </div>
<span>筛选</span> <div>
</div> <el-form label-width="80px">
<div> <el-row>
<el-form label-width="80px"> <el-col :span="5">
<el-row> <!--
<el-col :span="5"> <el-form-item label="国家">
<!-- <el-select v-model="form.countries" clearable placeholder="请选择国家">
<el-form-item label="国家"> <el-option v-for="(item,index) in countryList" :key="index" :label="item.name" :value="item.value"></el-option>
<el-select v-model="form.countries" clearable placeholder="请选择国家"> </el-select>
<el-option v-for="(item,index) in countryList" :key="index" :label="item.name" :value="item.value"></el-option> </el-form-item>
</el-select> -->
</el-form-item> <el-form-item label="省份">
--> <el-select v-model="form.provinces" clearable placeholder="请选择省份" @change="getCity" @clear="clearprovince()">
<el-form-item label="省份"> <el-option v-for="(item,index) in provinceList" :key="index" :label="item.provinceName" :value="item.provinceId"></el-option>
<el-select v-model="form.provinces" clearable placeholder="请选择省份" @change="getCity" @clear="clearprovince()"> </el-select>
<el-option v-for="(item,index) in provinceList" :key="index" :label="item.provinceName" :value="item.provinceId"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="5">
</el-col> <el-form-item label="城市">
<el-col :span="5"> <el-select v-model="form.city" clearable placeholder="请选择城市"
<el-form-item label="城市"> :disabled="form.provinces ? false : true" @clear="clearcity()" @change="initData">
<el-select v-model="form.city" clearable placeholder="请选择城市" <el-option v-for="(item,index) in cityList" :key="index" :label="item.cityName" :value="item.cityId"></el-option>
:disabled="form.provinces ? false : true" @clear="clearcity()" @change="initData"> </el-select>
<el-option v-for="(item,index) in cityList" :key="index" :label="item.cityName" :value="item.cityId"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="5">
</el-col> <el-form-item label="来源">
<el-col :span="5"> <el-select v-model="form.platformId" clearable placeholder="请选择来源" @change="initData">
<el-form-item label="来源"> <el-option
<el-select v-model="form.platformId" clearable placeholder="请选择来源" @change="initData"> v-for="item in platformList"
<el-option :key="item.value"
v-for="item in platformList" :label="item.label"
:key="item.value" :value="item.value"
:label="item.label" ></el-option>
:value="item.value" </el-select>
></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="5">
</el-col> <el-form-item label="学校">
<el-col :span="5"> <el-select v-model="form.schoolId" clearable filterable placeholder="请选择学校" @change="initData">
<el-form-item label="学校"> <el-option v-for="(item,index) in schoolList" :key="index" :label="item.schoolName" :value="item.schoolId"></el-option>
<el-select v-model="form.schoolId" clearable filterable placeholder="请选择学校" @change="initData"> </el-select>
<el-option v-for="(item,index) in schoolList" :key="index" :label="item.schoolName" :value="item.schoolId"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <!-- <el-col :span="5">
</el-col> <el-form-item label="角色">
<!-- <el-col :span="5"> <el-select v-model="form.accountRole" clearable placeholder="请选择角色" @change="initData">
<el-form-item label="角色"> <el-option v-for="(item,index) in accountRoleList" :key="index" :label="item.name" :value="item.value"></el-option>
<el-select v-model="form.accountRole" clearable placeholder="请选择角色" @change="initData"> </el-select>
<el-option v-for="(item,index) in accountRoleList" :key="index" :label="item.name" :value="item.value"></el-option> </el-form-item>
</el-select> </el-col> -->
</el-form-item> </el-row>
</el-col> --> <el-row>
</el-row> <el-col :span="8" style="width: 32.8%;margin-right: 0.5333%">
<el-row> <el-form-item label="创建时间" class="userRadio">
<el-col :span="8"> <el-radio-group v-model="form.month">
<el-form-item label="创建时间" class="userRadio"> <el-radio v-for="(item,index) in dateList" :key="index" :label="item.id" border>{{item.name}}</el-radio>
<el-radio-group v-model="form.month"> </el-radio-group>
<el-radio v-for="(item,index) in dateList" :key="index" :label="item.id" border>{{item.name}}</el-radio> </el-form-item>
</el-radio-group> </el-col>
</el-form-item> <el-col :span="6">
</el-col> <el-form-item label="自定义">
<el-col :span="6"> <el-date-picker
<el-form-item label="自定义"> v-model="form.date"
<el-date-picker align="right"
v-model="form.date" unlink-panels
align="right" type="daterange"
unlink-panels start-placeholder="开始日期"
type="daterange" end-placeholder="结束日期"
start-placeholder="开始日期" format="yyyy-MM-dd"
end-placeholder="结束日期" value-format="yyyy-MM-dd"
format="yyyy-MM-dd" clearable
value-format="yyyy-MM-dd" style="width: 100%"
clearable ></el-date-picker>
style="width: 100%" </el-form-item>
></el-date-picker> </el-col>
</el-form-item> <el-col :span="6">
</el-col> <el-form-item>
<el-col :span="6"> <el-input placeholder="支持账号,手机号,姓名,学校查询" prefix-icon="el-icon-search" v-model="form.keyword" clearable></el-input>
<el-form-item> </el-form-item>
<el-input placeholder="支持账号,手机号,姓名,学校查询" prefix-icon="el-icon-search" v-model="form.keyword" clearable></el-input> </el-col>
</el-form-item> </el-row>
</el-col>
</el-row>
</el-form> </el-form>
</div> </div>
</div> </div>
</el-card> </el-card>
</el-col>
<el-col :span="24"> <el-card shadow="hover" class="card">
<el-card shadow="hover" class="mgb20"> <div class="flex-between mgb20">
<div class="flex-between mgb20"> <div class="flex-center">
<div class="flex-center"> <p class="hr_tag"></p>
<p class="hr_tag"></p> <span>用户列表</span>
<span>用户列表</span> </div>
</div> <div>
<div> <el-button type="primary" round @click="delAllSelection" v-auth>批量删除</el-button>
<el-button type="primary" round @click="delAllSelection" v-auth>批量删除</el-button> </div>
</div> </div>
</div> <el-table :data="userData" class="table" ref="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="userId">
<el-table :data="userData" class="table" ref="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="userId"> <el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column>
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column> <el-table-column type="index" width="100" label="序号" align="center"></el-table-column>
<el-table-column type="index" width="100" label="序号" align="center"></el-table-column> <el-table-column prop="account" label="用户账号" align="center"></el-table-column>
<el-table-column prop="account" label="用户账号" align="center"></el-table-column> <el-table-column prop="provinceName" label="省份" align="center"></el-table-column>
<el-table-column prop="provinceName" label="省份" align="center"></el-table-column> <el-table-column prop="cityName" label="城市" align="center"></el-table-column>
<el-table-column prop="cityName" label="城市" align="center"></el-table-column> <el-table-column prop="userName" label="姓名" align="center"></el-table-column>
<el-table-column prop="userName" label="姓名" align="center"></el-table-column> <el-table-column prop="schoolName" label="学校" align="center"></el-table-column>
<el-table-column prop="schoolName" label="学校" align="center"></el-table-column> <el-table-column prop="platformName" label="来源" align="center"></el-table-column>
<el-table-column prop="platformName" label="来源" align="center"></el-table-column> <el-table-column prop="phone" label="手机号" align="center"></el-table-column>
<el-table-column prop="phone" label="手机号" align="center"></el-table-column> <el-table-column prop="createTime" label="创建时间" align="center"></el-table-column>
<el-table-column prop="createTime" label="创建时间" align="center"></el-table-column> <el-table-column prop="logInNumber" label="登录次数" align="center"></el-table-column>
<el-table-column prop="logInNumber" label="登录次数" align="center"></el-table-column> <el-table-column label="操作" width="300" align="center">
<el-table-column label="操作" width="300" align="center"> <template slot-scope="scope">
<template slot-scope="scope"> <el-button type="text" @click="show(scope.row)" v-auth>查看</el-button>
<el-button type="text" @click="show(scope.row)" v-auth>查看</el-button> <el-button type="text" @click="edit(scope.row)" v-auth>编辑</el-button>
<el-button type="text" @click="edit(scope.row)" v-auth>编辑</el-button> <el-button v-if="scope.row.userId!==1" type="text" @click="handleDelete(scope.row)" v-auth>删除</el-button>
<el-button v-if="scope.row.userId!==1" type="text" @click="handleDelete(scope.row)" v-auth>删除</el-button> <el-button type="text" @click="resetPassword(scope.row)" v-auth>重置密码</el-button>
<el-button type="text" @click="resetPassword(scope.row)" v-auth>重置密码</el-button> <el-switch v-if="scope.row.userId!==1" v-model="scope.row.isEnable" :active-value="1" :inactive-value="0" style="margin: 0 10px 0 5px" :active-text="scope.row.isEnable ? '启用' : '禁用'" @change="switchOff($event,scope.row,scope.$index)" v-auth="'/user:启用'"></el-switch>
<el-switch v-if="scope.row.userId!==1" v-model="scope.row.isEnable" :active-value="1" :inactive-value="0" style="margin: 0 10px 0 5px" :active-text="scope.row.isEnable ? '启用' : '禁用'" @change="switchOff($event,scope.row,scope.$index)" v-auth="'/user:启用'"></el-switch> </template>
</template> </el-table-column>
</el-table-column> </el-table>
</el-table> <div class="pagination">
<div class="pagination"> <el-pagination background @current-change="currentChange" :current-page="page" layout="total, prev, pager, next" :total="totals">
<el-pagination background @current-change="currentChange" :current-page="page" layout="total, prev, pager, next" :total="totals"> </el-pagination>
</el-pagination> </div>
</div> </el-card>
</el-card>
</el-col>
</el-row>
</div> </div>
</template> </template>
@ -407,11 +401,21 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.el-form-item{ .card {
margin-bottom: 0; min-height: calc(100vh - 380px);
.el-radio.is-bordered+.el-radio.is-bordered{ }
margin-left: 0; .el-form-item{
margin-bottom: 0;
/deep/.el-radio {
width: 87px;
text-align: center;
.el-radio__label {
padding-left: 0;
} }
} }
.el-radio.is-bordered+.el-radio.is-bordered{
margin-left: 0;
}
}
</style> </style>

@ -1,24 +1,5 @@
// 引入等比适配插件
const px2rem = require("postcss-px2rem");
// 配置基本大小
const postcss = px2rem({
// 基准大小 baseSize,需要和rem.js中相同
remUnit: 16
});
// 使用等比适配插件
module.exports = { module.exports = {
lintOnSave: true, lintOnSave: true,
css: {
loaderOptions: {
postcss: {
plugins: [
postcss
]
}
}
},
publicPath: "./", publicPath: "./",
outputDir: "dist", outputDir: "dist",
assetsDir: "static", assetsDir: "static",

Loading…
Cancel
Save