zhuzhixinxi

This commit is contained in:
shilixia 2020-07-10 08:56:04 +08:00
parent 400fbf6a56
commit 63cc990a36
7 changed files with 566 additions and 19 deletions

View File

@ -62,7 +62,7 @@ export function updateAddress(id, data) {
export function deleteAddress(id) {
return request({
url: `/certset/enterpriseaddress/${id}/`,
url: `/crm/enterpriseaddress/${id}/`,
method: 'delete'
})
}

View File

@ -118,7 +118,13 @@ export const asyncRoutes = [
meta: { title: '新增组织信息', noCache: true, icon: '', perms: ['enterprise_create']},
hidden: true
},
{
path: 'enterprise/update',
name: 'EnterpriseUpdate',
component: () => import('@/views/enterprise/enterpriseupdate.vue'),
meta: { title: '修改组织信息', noCache: true, icon: '', perms: ['enterprise_update'] },
hidden: true
},
]
},
{

View File

@ -32,6 +32,17 @@
{{ scope.row.type }}
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="260px">
<template slot-scope="scope">
<el-button type="primary"
size="small"
@click="handleUpdate(scope)">编辑</el-button>
<el-button type="danger"
size="small"
@click="handleDelete(scope)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog :visible.sync="dialogVisible" :title="dialogType==='update'?'编辑':'新增'">
<el-form ref="Form"
@ -106,9 +117,7 @@ export default {
},
addressList: [],
listLoading: true,
listQuery: {
enterprise:this.enterprise
},
rule1: {
},
@ -147,10 +156,12 @@ export default {
methods: {
checkPermission,
getList() {
this.listLoading = true;
getAddressList(this.listQuery).then(response => {
getAddressList({ enterprise: this.enterprise }).then(response => {
if (response.data) {
this.addressList = response.data.results
this.addressList = response.data
console.log(response.data)
}
this.listLoading = false
});
@ -164,7 +175,7 @@ export default {
},
getValue() {
console.log(this.addressData.country_code)
if (this.addressData.country_code == 69) {
getDictList({ type__code: "china_regions" }).then(response => {
this.countyOptions = genTree(response.data);
@ -190,14 +201,30 @@ export default {
})
},
handleDelete(scope){
this.$confirm('确定删除本条数据吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteAddress(scope.row.id).then(res=>{
this.$notify({
title: '成功',
title: '删除成功',
type: 'success',
duration: 2000
})
this.getList()
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
async confirm(form) {
@ -205,6 +232,7 @@ handleDelete(scope){
if (valid) {
const isEdit = this.dialogType === 'update'
if (isEdit) {
this.addressData.county_code=this.addressData.county_code[2]
updateAddress(this.addressData.id, this.addressData).then(() => {
this.getList()
this.dialogVisible = false

View File

@ -44,7 +44,7 @@
</el-table-column>
<el-table-column width="150" label="组织名称">
<template slot-scope="scope">
{{ }}
{{scope.row.name }}
</template>
</el-table-column>
<el-table-column width="150" label="英文名">
@ -187,6 +187,9 @@ export default {
handleCreate() {
this.$router.push({path:"/crm/enterprise/create"})
},
handleUpdate(scope) {
this.$router.push({path:"/crm/enterprise/update",query:{id:scope.row.id}})
},
handleDelete(scope) {
this.$confirm('确定删除本条数据吗?', '提示', {
confirmButtonText: '确定',

View File

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<el-tabs type="border-card">
<el-tab-pane label="组织基本信息">
<el-tabs type="border-card" v-model="activeName" >
<el-tab-pane label="组织基本信息" name="enterprisexx">
<el-form ref="elForm" :model="formData" :rules="rule1" size="medium" label-width="100px">
<el-col :span="8" font="left">
@ -333,7 +333,7 @@
</el-col>
</el-form>
</el-tab-pane>
<el-tab-pane label="组织地址信息" v-if="formData.id">
<el-tab-pane label="组织地址信息" name="address" v-if="formData.id">
<Addresstype :enterprise="formData.id"></Addresstype>
</el-tab-pane>
</el-tabs>
@ -372,6 +372,7 @@
props: [],
data() {
return {
activeName: 'enterprisexx',
fileList: [],
upHeaders: upHeaders(),
upUrl: upUrl(),
@ -488,10 +489,11 @@
message: '成功!'
})
this.formData.id = response.data.id;
console.log(response.data);
this.formData.id = response.data.id;
this.activeName="address";
});
});
},
resetForm() {

View File

@ -0,0 +1,502 @@
<template>
<div class="app-container">
<el-tabs type="border-card" >
<el-tab-pane label="组织基本信息" >
<el-form ref="elForm" :model="formData" :rules="rule1" size="medium" label-width="100px">
<el-col :span="8" font="left">
<el-form-item label="组织查询码" prop="query_code">
<el-input v-model="formData.query_code"
placeholder="请输入组织查询码"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="right">
<el-form-item label="组织名称" prop="name">
<el-input v-model="formData.name"
placeholder="请输入组织名称"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="组织名称" prop="ename">
<el-input v-model="formData.ename"
placeholder="请输入组织名称(英文)"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="right">
<el-form-item label="信用代码" prop="credit_code">
<el-input v-model="formData.credit_code"
placeholder="请输入统一社会信用代码"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="组织法人" prop="legal">
<el-input v-model="formData.legal"
placeholder="请输入组织法人"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="注册资金" prop="gassets">
<el-input v-model="formData.gassets"
placeholder="请输入注册资金(万元)"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="right">
<el-form-item label="组织员工数" prop="person_count">
<el-input v-model="formData.person_count"
placeholder="请输入组织员工数"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="所属专业" prop="professional">
<el-select v-model="formData.professional"
placeholder="请选择所属专业"
clearable
:style="{width: '100%'}">
<el-option v-for="(item, index) in professional_classOptions"
:key="index"
:label="item.name"
:value="item.value"
:disabled="item.disabled">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" font="right">
<el-form-item label="陶瓷年产量" prop="ceramics_output">
<el-input v-model="formData.ceramics_output"
placeholder="请输入陶瓷年产量(万平方米)"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="经济行业" prop="economy_class">
<el-select v-model="formData.economy_class"
placeholder="请选择经济行业"
clearable
:style="{width: '100%'}">
<el-option v-for="(item, index) in economy_classOptions"
:key="index"
:label="item.name"
:value="item.value"
:disabled="item.disabled"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="机构类型" prop="type">
<el-select v-model="formData.type"
placeholder="请选择机构类型"
clearable
:style="{width: '100%'}">
<el-option v-for="(item, index) in type_Options"
:key="index"
:label="item.name"
:value="item.value"
:disabled="item.disabled">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="经济类型" prop="economy_type">
<el-select filterable v-model="formData.economy_type"
placeholder="请选择经济类型"
clearable
:style="{width: '100%'}">
<el-option v-for="(item, index) in economy_typeOptions"
:key="index"
:label="item.name"
:value="item.value"
:disabled="item.disabled">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5" font="right">
<el-form-item label="建厂时间" prop="build_time">
<el-date-picker v-model="formData.build_time"
type="date"
placeholder="选择日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="5" font="left">
<el-form-item label="工厂编号" prop="code">
<el-input v-model="formData.code"
placeholder="请输入工厂编号"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="经营范围" prop="business_type">
<el-input type="textarea" :rows="2" v-model="formData.business_type"
placeholder="请输入经营范围"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<div slot="header" class="clearfix">
<span>组织联系人信息</span>
</div>
<el-col :span="8" font="left">
<el-form-item label="常用联系人" prop="linkman1_name">
<el-input v-model="formData.linkman1_name"
placeholder="请输入常用联系人"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="职务" prop="linkman1_duty">
<el-input v-model="formData.linkman1_duty"
placeholder="职务"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="right">
<el-form-item label="手机" prop="linkman1_mobile">
<el-input v-model="formData.linkman1_mobile"
placeholder="手机"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="联系电话" prop="linkman1_tel">
<el-input v-model="formData.linkman1_tel"
placeholder="联系电话"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="传真" prop="linkman1_fax">
<el-input v-model="formData.linkman1_fax"
placeholder="传真"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="right">
<el-form-item label="Email" prop="linkman1_email">
<el-input v-model="formData.linkman1_email"
placeholder="Email"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="备用联系人" prop="linkman2_name">
<el-input v-model="formData.linkman2_name"
placeholder="请输入常用联系人"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="职务" prop="linkman2_duty">
<el-input v-model="formData.linkman2_duty"
placeholder="职务"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="right">
<el-form-item label="手机" prop="linkman2_mobile">
<el-input v-model="formData.linkman2_mobile"
placeholder="手机"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="联系电话" prop="linkman2_tel">
<el-input v-model="formData.linkman2_tel"
placeholder="联系电话"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="传真" prop="linkman2_fax">
<el-input v-model="formData.linkman2_fax"
placeholder="传真"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="right">
<el-form-item label="Email" prop="linkman2_email">
<el-input v-model="formData.linkman2_email"
placeholder="Email"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="ES联系人" prop="linkman3_name">
<el-input v-model="formData.linkman3_name"
placeholder="请输入常用联系人"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="职务" prop="linkman3_duty">
<el-input v-model="formData.linkman3_duty"
placeholder="职务"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="right">
<el-form-item label="手机" prop="linkman3_mobile">
<el-input v-model="formData.linkman3_mobile"
placeholder="手机"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="联系电话" prop="linkman3_tel">
<el-input v-model="formData.linkman3_tel"
placeholder="联系电话"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="left">
<el-form-item label="传真" prop="linkman3_fax">
<el-input v-model="formData.linkman3_fax"
placeholder="传真"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" font="right">
<el-form-item label="Email" prop="linkman3_email">
<el-input v-model="formData.linkman3_email"
placeholder="Email"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remarks">
<el-input type="textarea" :rows="2" v-model="formData.remarks"
placeholder="请输入备注"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="24" style="margin-top:4px">
<el-form-item size="large">
<el-button type="primary" @click="submitForm">保存</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-col>
</el-form>
</el-tab-pane>
<el-tab-pane label="组织地址信息" >
<Addresstype :enterprise="formData.id"></Addresstype>
</el-tab-pane>
</el-tabs>
</div>
</template>
<style>
.text {
font-size: 14px;
}
.item {
margin-bottom: 18px;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
}
.clearfix:after {
clear: both
}
</style>
<script>
import { getDictList } from "@/api/dict";
import { updateEnterprise,getEnterprise } from "@/api/enterprise";
import { genTree } from "@/utils";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { upUrl, upHeaders } from "@/api/file";
import Addresstype from "@/views/enterprise/addresstype";
export default {
components: { Treeselect,Addresstype},
props: [],
data() {
return {
activeName: 'province',
fileList: [],
upHeaders: upHeaders(),
upUrl: upUrl(),
formData: {
query_code: undefined,
name: undefined,
ename: undefined,
credit_code: undefined,
legal: undefined,
gassets: undefined,
person_count: undefined,
professional: undefined,
ceramics_output: undefined,
economy_class: undefined,
type: undefined,
economy_type: undefined,
build_time: undefined,
code: undefined,
business_type: undefined,
linkman1_name: undefined,
linkman1_duty: undefined,
linkman1_mobile: undefined,
linkman1_tel: undefined,
linkman1_fax: undefined,
linkman_email: undefined,
linkman2_name: undefined,
linkman2_duty: undefined,
linkman2_mobile: undefined,
linkman2_tel: undefined,
linkman2_fax: undefined,
linkman2_email: undefined,
linkman3_name: undefined,
linkman3_duty: undefined,
linkman3_mobile: undefined,
linkman3_tel: undefined,
linkman3_fax: undefined,
linkman3_email: undefined
},
economy_classOptions: [
],
economy_typeOptions:[],
professional_classOptions: [
],
type_Options: [],
rule1: {
query_code: [{ required: true, message: '请输入组织查询码', trigger: 'blur' }],
code: [{ required: true, message: '请输入工厂编号', trigger: 'blur' }]
},
field101Options: [],
field101Props: {
"multiple": false,
"label": "name",
"value": "code",
"children": "children"
},
};
},
computed: {},
created() {
this.formData.id = this.$route.query.id , //接收参数
this.getData(),
this.getECclass(),
this.getPfclass(),
this.getTypeclass(),
this.getECtype()
},
mounted() { },
methods: {
handlePreview(file) {
if ("url" in file) {
window.open(file.url);
} else {
window.open(file.response.data.path);
}
},
getData() {
getEnterprise(this.formData.id).then(response => {
this.formData = response.data
})
},
getPfclass() {
getDictList({ type__code: "professional_type" }).then(response => {
this.professional_classOptions = genTree(response.data);
});
},
getECclass() {
getDictList({ type__code: "economy_class" }).then(response => {
this.economy_classOptions = genTree(response.data);
});
},
getTypeclass() {
getDictList({ type__code: "organication_type" }).then(response => {
this.type_Options = genTree(response.data);
});
},
getECtype() {
getDictList({ type__code: "economy_type" }).then(response => {
this. economy_typeOptions = genTree(response.data);
});
},
submitForm() {
this.$refs["elForm"].validate(valid => {
if (!valid) return;
// TODO 提交表单
updateEnterprise(this.formData.id,this.formData).then(response => {
this.$router.go(-1);
});
});
},
resetForm() {
this.$refs["elForm"].resetFields();
}
}
};
</script>

View File

@ -28,6 +28,12 @@ class EnterpriseAddressViewSet(CreateUpdateCustomMixin, OptimizationMixin, Model
queryset = EnterpriseAddress.objects
serializer_class = EnterpriseAddressSerializer
search_fields = ['address']
filterset_fields = ['enterprise']
ordering = ['-create_time']
def paginate_queryset(self, queryset):
if ((not self.request.query_params.get('page', None)) and (self.request.query_params.get('enterprise', None))) or (self.paginator is None):
return None
return self.paginator.paginate_queryset(queryset, self.request, view=self)