test mini conflict
This commit is contained in:
commit
acff3881cc
|
@ -3,7 +3,14 @@
|
||||||
<router-view />
|
<router-view />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
<style >
|
||||||
|
.el-table td, .el-table th {
|
||||||
|
padding: 6px
|
||||||
|
}
|
||||||
|
.el-dialog__body {
|
||||||
|
padding: 16px 12px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'App'
|
name: 'App'
|
||||||
|
|
|
@ -21,6 +21,15 @@ export function updateCompany(id, data) {
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function transferCompany(id, data) {
|
||||||
|
return request({
|
||||||
|
url: `/crm/company/${id}/transfer/`,
|
||||||
|
method: 'put',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function deleteCompany(id) {
|
export function deleteCompany(id) {
|
||||||
return request({
|
return request({
|
||||||
url: `/crm/company/${id}/`,
|
url: `/crm/company/${id}/`,
|
||||||
|
|
|
@ -13,7 +13,11 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
<style scoped>
|
||||||
|
.pagination-container[data-v-72233bcd] {
|
||||||
|
padding: 2px 2px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<script>
|
<script>
|
||||||
import { scrollTo } from '@/utils/scroll-to'
|
import { scrollTo } from '@/utils/scroll-to'
|
||||||
|
|
||||||
|
|
|
@ -108,7 +108,7 @@ export const asyncRoutes = [
|
||||||
path: 'company',
|
path: 'company',
|
||||||
name: 'Company',
|
name: 'Company',
|
||||||
component: () => import('@/views/crm/company.vue'),
|
component: () => import('@/views/crm/company.vue'),
|
||||||
meta: { title: '客户企业', icon: '', perms: ['company_manage'] }
|
meta: { title: '客户企业', icon: '', perms: ['company_view'] }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'consumer',
|
path: 'consumer',
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
@keyup.enter.native="handleFilter"
|
@keyup.enter.native="handleFilter"
|
||||||
/>
|
/>
|
||||||
<el-button type="primary" @click="handleAdd" icon="el-icon-plus">新增</el-button>
|
<el-button type="primary" @click="handleAdd" icon="el-icon-plus" v-if ="checkPermission(['company_create'])">新增</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
@ -38,8 +38,14 @@
|
||||||
<span>{{ scope.row.create_time }}</span>
|
<span>{{ scope.row.create_time }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="所属">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.create_admin_name }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column align="center" label="操作">
|
<el-table-column align="center" label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
<el-button-group>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -54,6 +60,13 @@
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
:disabled="!checkPermission(['company_delete'])"
|
:disabled="!checkPermission(['company_delete'])"
|
||||||
></el-button>
|
></el-button>
|
||||||
|
<el-button
|
||||||
|
v-if="checkPermission(['company_transfer'])"
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="transfer(scope)"
|
||||||
|
>移交</el-button>
|
||||||
|
</el-button-group>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -79,7 +92,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getCompanyList, createCompany, deleteCompany, updateCompany } from "@/api/crm";
|
import { getCompanyList, createCompany, deleteCompany, updateCompany, transferCompany } from "@/api/crm";
|
||||||
import { deepClone } from "@/utils";
|
import { deepClone } from "@/utils";
|
||||||
import checkPermission from "@/utils/permission";
|
import checkPermission from "@/utils/permission";
|
||||||
import Pagination from "@/components/Pagination"
|
import Pagination from "@/components/Pagination"
|
||||||
|
@ -209,7 +222,21 @@ export default {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
transfer(scope) {
|
||||||
|
this.$prompt('请输入管理员账号以确认将('+scope.row.name + ')及其学员转交给他', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
// inputPattern: /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
|
||||||
|
// inputErrorMessage: '邮箱格式不正确'
|
||||||
|
}).then(({ value }) => {
|
||||||
|
transferCompany(scope.row.id, {'admin':value}).then(res=>{
|
||||||
|
this.$message.success('转交成功!')
|
||||||
|
this.getList()
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1,147 @@
|
||||||
|
<template>
|
||||||
|
<div >
|
||||||
|
<div >
|
||||||
|
<el-input
|
||||||
|
v-model="listQuery.search"
|
||||||
|
placeholder="输入名称进行搜索"
|
||||||
|
style="width: 200px;"
|
||||||
|
class="filter-item"
|
||||||
|
@keyup.enter.native="handleFilter"
|
||||||
|
/>
|
||||||
|
<el-button
|
||||||
|
class="filter-item"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="resetFilter"
|
||||||
|
>刷新重置</el-button>
|
||||||
|
</div>
|
||||||
|
<el-table
|
||||||
|
:data="tableData.results"
|
||||||
|
style="width: 100%;margin-top:10px;"
|
||||||
|
border
|
||||||
|
fit
|
||||||
|
v-loading="listLoading"
|
||||||
|
highlight-current-row
|
||||||
|
max-height="600"
|
||||||
|
row-key="id"
|
||||||
|
default-expand-all
|
||||||
|
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
|
||||||
|
@row-dblclick="handleChose2"
|
||||||
|
>
|
||||||
|
<el-table-column type="index" width="50"></el-table-column>
|
||||||
|
<el-table-column label="单位名称">
|
||||||
|
<template slot-scope="scope">{{ scope.row.name }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="创建日期">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.create_time }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="操作">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="handleChose(scope)"
|
||||||
|
>选择</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<pagination
|
||||||
|
v-show="tableData.count>0"
|
||||||
|
:total="tableData.count"
|
||||||
|
:page.sync="listQuery.page"
|
||||||
|
:limit.sync="listQuery.limit"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
<el-dialog :visible.sync="dialogVisible" :title="dialogType==='edit'?'编辑单位':'新增单位'" >
|
||||||
|
<el-form :model="company" label-width="80px" label-position="right" :rules="rule1" ref="companyForm">
|
||||||
|
<el-form-item label="名称" prop="name">
|
||||||
|
<el-input v-model="company.name" placeholder="名称" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div style="text-align:right;">
|
||||||
|
<el-button type="danger" @click="dialogVisible=false">取消</el-button>
|
||||||
|
<el-button type="primary" @click="confirmCompany('companyForm')">确认</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getCompanyList, createCompany, deleteCompany, updateCompany } from "@/api/crm";
|
||||||
|
import { deepClone } from "@/utils";
|
||||||
|
import checkPermission from "@/utils/permission";
|
||||||
|
import Pagination from "@/components/Pagination"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const defaultCompany = {
|
||||||
|
id: "",
|
||||||
|
name: "",
|
||||||
|
};
|
||||||
|
const listQuery = {
|
||||||
|
page: 1,
|
||||||
|
limit: 10,
|
||||||
|
search: "",
|
||||||
|
perm:'all'
|
||||||
|
}
|
||||||
|
export default {
|
||||||
|
name:'Companychoose',
|
||||||
|
components: { Pagination },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
company: {
|
||||||
|
id: "",
|
||||||
|
name: "",
|
||||||
|
},
|
||||||
|
listQuery:listQuery,
|
||||||
|
tableData: {count:0},
|
||||||
|
listLoading: true,
|
||||||
|
dialogVisible: false,
|
||||||
|
dialogType: "new",
|
||||||
|
rule1: {
|
||||||
|
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
|
||||||
|
// pid: [{ required: true, message: "请选择上级", trigger: "change" }]
|
||||||
|
// password: [
|
||||||
|
// { required: true, message: "请输入密码", trigger: "change" }
|
||||||
|
// ],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
checkPermission,
|
||||||
|
getList() {
|
||||||
|
this.listLoading = true
|
||||||
|
getCompanyList(this.listQuery).then(response => {
|
||||||
|
this.tableData = response.data
|
||||||
|
this.listLoading = false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
resetFilter() {
|
||||||
|
this.listQuery = {
|
||||||
|
page: 1,
|
||||||
|
limit: 10,
|
||||||
|
search: "",
|
||||||
|
perm:'all'
|
||||||
|
};
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
handleFilter() {
|
||||||
|
this.listQuery.page = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
handleChose(scope) {
|
||||||
|
this.$emit('handleChose',scope.row);
|
||||||
|
},
|
||||||
|
handleChose2(row, column, event){
|
||||||
|
this.$emit('handleChose',row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
|
@ -228,14 +228,25 @@
|
||||||
<el-input v-model="consumer.username" placeholder="手机号" />
|
<el-input v-model="consumer.username" placeholder="手机号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="单位" prop="company">
|
<el-form-item label="单位" prop="company">
|
||||||
<el-select
|
<el-input
|
||||||
|
placeholder="单位"
|
||||||
|
v-model="consumer.company_.name"
|
||||||
|
readonly
|
||||||
|
|
||||||
|
>
|
||||||
|
<el-button slot="append" icon="el-icon-search" @click="choose()"></el-button>
|
||||||
|
</el-input>
|
||||||
|
<!-- <el-select
|
||||||
v-model="consumer.company"
|
v-model="consumer.company"
|
||||||
placeholder="单位"
|
placeholder="单位"
|
||||||
style="width:100%"
|
style="width:100%"
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
remote
|
remote
|
||||||
|
:loading="treeLoding"
|
||||||
:remote-method="searchCompany"
|
:remote-method="searchCompany"
|
||||||
|
loading-text
|
||||||
|
no-match-text
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in companyData"
|
v-for="item in companyData"
|
||||||
|
@ -243,7 +254,7 @@
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
></el-option>
|
></el-option>
|
||||||
</el-select>
|
</el-select> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="缴费学科" prop="subjects">
|
<el-form-item label="缴费学科" prop="subjects">
|
||||||
<el-select v-model="consumer.subjects" placeholder="缴费学科" style="width:100%" multiple>
|
<el-select v-model="consumer.subjects" placeholder="缴费学科" style="width:100%" multiple>
|
||||||
|
@ -281,6 +292,15 @@
|
||||||
<el-button type="primary" @click="confirmUser('consumerForm')">确认</el-button>
|
<el-button type="primary" @click="confirmUser('consumerForm')">确认</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-dialog
|
||||||
|
title="选择企业"
|
||||||
|
:visible.sync="dgVisiable"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
width="80%"
|
||||||
|
:append-to-body="true"
|
||||||
|
>
|
||||||
|
<Companychose ref="Companychose" @handleChose="chooseComplete"></Companychose>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -305,12 +325,14 @@ import { upUrl } from "@/api/file";
|
||||||
import { getUserList } from "@/api/user"
|
import { getUserList } from "@/api/user"
|
||||||
import { getToken } from "@/utils/auth";
|
import { getToken } from "@/utils/auth";
|
||||||
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
|
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
|
||||||
|
import Companychose from "@/views/crm/companychose"
|
||||||
|
|
||||||
const defaultConsumer = {
|
const defaultConsumer = {
|
||||||
id: "",
|
id: "",
|
||||||
name: "",
|
name: "",
|
||||||
username: "",
|
username: "",
|
||||||
company: null,
|
company: null,
|
||||||
|
company_:{},
|
||||||
subjects: [],
|
subjects: [],
|
||||||
workscope: null,
|
workscope: null,
|
||||||
role:3
|
role:3
|
||||||
|
@ -321,7 +343,7 @@ const listQuery = {
|
||||||
search: ""
|
search: ""
|
||||||
};
|
};
|
||||||
export default {
|
export default {
|
||||||
components: { Pagination },
|
components: { Pagination, Companychose },
|
||||||
watch: {
|
watch: {
|
||||||
filterOrgText(val) {
|
filterOrgText(val) {
|
||||||
this.$refs.tree.filter(val);
|
this.$refs.tree.filter(val);
|
||||||
|
@ -329,6 +351,7 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
dgVisiable:false,
|
||||||
tableKey: 0,
|
tableKey: 0,
|
||||||
showCreate: true,
|
showCreate: true,
|
||||||
upUrl: upUrl(),
|
upUrl: upUrl(),
|
||||||
|
@ -470,7 +493,7 @@ export default {
|
||||||
},
|
},
|
||||||
searchCompany(val) {
|
searchCompany(val) {
|
||||||
this.treeLoding = true;
|
this.treeLoding = true;
|
||||||
getCompanyList({search:val}).then(response => {
|
getCompanyList({search:val, perm:'all'}).then(response => {
|
||||||
this.companyData = genTree(response.data.results);
|
this.companyData = genTree(response.data.results);
|
||||||
this.treeLoding = false;
|
this.treeLoding = false;
|
||||||
});
|
});
|
||||||
|
@ -512,6 +535,9 @@ export default {
|
||||||
},
|
},
|
||||||
handleEdit(scope) {
|
handleEdit(scope) {
|
||||||
this.consumer = Object.assign({}, scope.row); // copy obj
|
this.consumer = Object.assign({}, scope.row); // copy obj
|
||||||
|
if(this.consumer.company_ == null){
|
||||||
|
this.consumer.company_ = {}
|
||||||
|
}
|
||||||
this.dialogType = "edit";
|
this.dialogType = "edit";
|
||||||
this.dialogVisible = true;
|
this.dialogVisible = true;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
@ -659,7 +685,18 @@ export default {
|
||||||
this.adminOptions = genTree(res.data.results)
|
this.adminOptions = genTree(res.data.results)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
choose() {
|
||||||
|
this.dgVisiable = true;
|
||||||
|
},
|
||||||
|
chooseComplete(val) {
|
||||||
|
this.dgVisiable = false;
|
||||||
|
if (val) {
|
||||||
|
this.consumer.company_ = val
|
||||||
|
this.consumer.company = val.id
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -175,8 +175,8 @@ Page({
|
||||||
if (isright == false && tm_current.user_answer != undefined) {
|
if (isright == false && tm_current.user_answer != undefined) {
|
||||||
tm_current.dtime = util.formatTime(new Date())
|
tm_current.dtime = util.formatTime(new Date())
|
||||||
that.data.ctms.unshift(tm_current)
|
that.data.ctms.unshift(tm_current)
|
||||||
if (that.data.ctms.length > 40) {
|
if (that.data.ctms.length > 100) {
|
||||||
that.data.ctms.length = 40
|
that.data.ctms.length = 100
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return isright
|
return isright
|
||||||
|
|
|
@ -130,7 +130,7 @@ Page({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
isPhone: function(phone){
|
isPhone: function(phone){
|
||||||
var phoneReg = /^[1][3,4,5,7,8,9][0-9]{9}$/;
|
var phoneReg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
|
||||||
if (phoneReg.test(phone)) {
|
if (phoneReg.test(phone)) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -10,14 +10,13 @@
|
||||||
<view wx:if="{{panduan_count>0}}">{{panduan_count}}道判断题,每题{{panduan_score}}分</view>
|
<view wx:if="{{panduan_count>0}}">{{panduan_count}}道判断题,每题{{panduan_score}}分</view>
|
||||||
<view >多选题漏选每个正确选项得1分,错选0分</view>
|
<view >多选题漏选每个正确选项得1分,错选0分</view>
|
||||||
<view >满分{{total_score}};{{pass_score}}以上通过</view>
|
<view >满分{{total_score}};{{pass_score}}以上通过</view>
|
||||||
</view>
|
|
||||||
<view class="weui-article">
|
|
||||||
<view class="weui-article__h2">2.答题须知</view>
|
<view class="weui-article__h2">2.答题须知</view>
|
||||||
<view style="color:red">进入答题后请不要后退或返回桌面</view>
|
<view style="color:red">进入答题后请不要后退或返回桌面</view>
|
||||||
<view>用户可点击上一题/下一题进行切换答题</view>
|
<view>用户可点击上一题/下一题进行切换答题</view>
|
||||||
<view>可点击答题卡复查</view>
|
<view>可点击答题卡复查</view>
|
||||||
<view>请合理安排时间答题,可提前交卷,超时会自动提交</view>
|
<view>请合理安排时间答题,可提前交卷,超时会自动提交</view>
|
||||||
</view>
|
</view>
|
||||||
|
<a class="weui-btn weui-btn_primary" bindtap="startTest">开始考试</a>
|
||||||
</view>
|
</view>
|
||||||
<a class="weui-btn weui-btn_primary" bindtap="startTest">开始考试</a>
|
|
||||||
</view>
|
</view>
|
|
@ -11,17 +11,17 @@
|
||||||
<view class="weui-media-box weui-media-box_appmsg">
|
<view class="weui-media-box weui-media-box_appmsg">
|
||||||
<view class="weui-media-box__bd weui-media-box__bd_in-appmsg">
|
<view class="weui-media-box__bd weui-media-box__bd_in-appmsg">
|
||||||
<view class="weui-media-box__title">{{item.cityName}} {{item.examDate}}</view>
|
<view class="weui-media-box__title">{{item.cityName}} {{item.examDate}}</view>
|
||||||
<view class="weui-media-box__desc">
|
<view class="weui-media-box__desc" style="font-size:12px">
|
||||||
考试时间:
|
考试时间:
|
||||||
<span style="font-weight:bold;color:darkblue">{{item.examTime}}</span>
|
<span style="font-weight:bold;color:darkblue">{{item.examTime}}</span>
|
||||||
<span>-</span>
|
<span>-</span>
|
||||||
截止报名:
|
截止报名:
|
||||||
<span style="font-weight:bold;color:red;">{{item.endSignDate}}</span>
|
<span style="font-weight:bold;color:red;">{{item.endSignDate}}</span>
|
||||||
</view>
|
</view>
|
||||||
<view class="weui-media-box__desc" wx:if="{{item.linkContact}}">
|
<view class="weui-media-box__desc" wx:if="{{item.linkContact}}" style="font-size:12px">
|
||||||
联系电话:{{item.linkContact}}
|
联系电话:{{item.linkContact}}
|
||||||
</view>
|
</view>
|
||||||
<view class="weui-media-box__desc">
|
<view class="weui-media-box__desc" style="font-size:12px">
|
||||||
{{item.planName}}
|
{{item.planName}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
@ -18,15 +18,15 @@
|
||||||
"checkInvalidKey": true,
|
"checkInvalidKey": true,
|
||||||
"checkSiteMap": true,
|
"checkSiteMap": true,
|
||||||
"uploadWithSourceMap": true,
|
"uploadWithSourceMap": true,
|
||||||
|
"compileHotReLoad": false,
|
||||||
"babelSetting": {
|
"babelSetting": {
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"disablePlugins": [],
|
"disablePlugins": [],
|
||||||
"outputPath": ""
|
"outputPath": ""
|
||||||
},
|
},
|
||||||
|
"useIsolateContext": true,
|
||||||
"useCompilerModule": false,
|
"useCompilerModule": false,
|
||||||
"userConfirmedUseCompilerModuleSwitch": false,
|
"userConfirmedUseCompilerModuleSwitch": false
|
||||||
"compileHotReLoad": false,
|
|
||||||
"useIsolateContext": true
|
|
||||||
},
|
},
|
||||||
"compileType": "miniprogram",
|
"compileType": "miniprogram",
|
||||||
"libVersion": "2.10.3",
|
"libVersion": "2.10.3",
|
||||||
|
|
|
@ -21,6 +21,7 @@ class CompanySerializer(serializers.ModelSerializer):
|
||||||
"""
|
"""
|
||||||
create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)
|
create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)
|
||||||
update_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)
|
update_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)
|
||||||
|
create_admin_name = serializers.StringRelatedField(source='create_admin', read_only=True)
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Company
|
model = Company
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
@ -33,6 +34,7 @@ class ConsumerSerializer(serializers.ModelSerializer):
|
||||||
create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)
|
create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)
|
||||||
update_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)
|
update_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)
|
||||||
company_name = serializers.StringRelatedField(source='company', read_only=True)
|
company_name = serializers.StringRelatedField(source='company', read_only=True)
|
||||||
|
company_ = CompanySerializer(source='company', read_only=True)
|
||||||
subjects_name = serializers.StringRelatedField(source='subjects', many=True, read_only=True)
|
subjects_name = serializers.StringRelatedField(source='subjects', many=True, read_only=True)
|
||||||
workscope_name = serializers.StringRelatedField(source='workscope', read_only=True)
|
workscope_name = serializers.StringRelatedField(source='workscope', read_only=True)
|
||||||
role_name = serializers.StringRelatedField(source='role', read_only=True)
|
role_name = serializers.StringRelatedField(source='role', read_only=True)
|
||||||
|
|
|
@ -32,6 +32,7 @@ from .models import Company, Consumer, PaySubject, SendCode, ConsumerPerm, Consu
|
||||||
from .serializers import CompanySerializer, ConsumerSerializer, ConsumerPermSerializer, ConsumerRoleSerializer, ConsumerDetailSerializer
|
from .serializers import CompanySerializer, ConsumerSerializer, ConsumerPermSerializer, ConsumerRoleSerializer, ConsumerDetailSerializer
|
||||||
import requests
|
import requests
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
|
from rbac.models import UserProfile
|
||||||
|
|
||||||
appid = 'wxf1e9471c93f05ad6'
|
appid = 'wxf1e9471c93f05ad6'
|
||||||
secret = '4bf7f9bd6c52634586bbe792a1f0a834'
|
secret = '4bf7f9bd6c52634586bbe792a1f0a834'
|
||||||
|
@ -95,7 +96,7 @@ class CompanyViewSet(ModelViewSet):
|
||||||
客户企业:增删改查
|
客户企业:增删改查
|
||||||
"""
|
"""
|
||||||
perms_map = [
|
perms_map = [
|
||||||
{'get': 'company_list'}, {'post': 'company_create'},
|
{'get': 'company_view'}, {'post': 'company_create'},
|
||||||
{'put': 'company_update'}, {'delete': 'company_delete'}]
|
{'put': 'company_update'}, {'delete': 'company_delete'}]
|
||||||
queryset = Company.objects.filter(is_delete=0).all()
|
queryset = Company.objects.filter(is_delete=0).all()
|
||||||
serializer_class = CompanySerializer
|
serializer_class = CompanySerializer
|
||||||
|
@ -105,12 +106,36 @@ class CompanyViewSet(ModelViewSet):
|
||||||
ordering_fields = ('id',)
|
ordering_fields = ('id',)
|
||||||
ordering = ['-id']
|
ordering = ['-id']
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
queryset = self.queryset
|
||||||
|
if self.request.query_params.get('perm', None):
|
||||||
|
return queryset
|
||||||
|
if not self.request.user.is_superuser:
|
||||||
|
queryset = queryset.filter(create_admin = self.request.user)
|
||||||
|
return queryset
|
||||||
|
|
||||||
|
@action(methods=['put'], detail=True, url_name='company_transfer',perms_map=[{'*':'company_transfer'}])
|
||||||
|
def transfer(self, request, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
转交
|
||||||
|
"""
|
||||||
|
obj = self.get_object()
|
||||||
|
adminname = request.data.get('admin', None)
|
||||||
|
if adminname and UserProfile.objects.filter(username=adminname).exists():
|
||||||
|
adminobj = UserProfile.objects.get(username=adminname)
|
||||||
|
obj.create_admin = adminobj
|
||||||
|
obj.save()
|
||||||
|
Consumer.objects.filter(company=obj).update(create_admin=adminobj)
|
||||||
|
return Response(status=status.HTTP_200_OK)
|
||||||
|
else:
|
||||||
|
return Response({"error":"账号错误"})
|
||||||
|
|
||||||
class ConsumerViewSet(ModelViewSet):
|
class ConsumerViewSet(ModelViewSet):
|
||||||
"""
|
"""
|
||||||
学员:增删改查
|
学员:增删改查
|
||||||
"""
|
"""
|
||||||
perms_map = [
|
perms_map = [
|
||||||
{'get': 'consumer_list'}, {'post': 'consumer_create'},
|
{'get': 'consumer_view'}, {'post': 'consumer_create'},
|
||||||
{'put': 'consumer_update'}, {'delete': 'consumer_delete'}]
|
{'put': 'consumer_update'}, {'delete': 'consumer_delete'}]
|
||||||
queryset = Consumer.objects.all()
|
queryset = Consumer.objects.all()
|
||||||
serializer_class = ConsumerSerializer
|
serializer_class = ConsumerSerializer
|
||||||
|
|
Loading…
Reference in New Issue