Commit 7dbfa459 authored by 张冬's avatar 张冬

角色和成员

parent 48821df5
...@@ -165,21 +165,8 @@ export function projectEnd(projectId) { ...@@ -165,21 +165,8 @@ export function projectEnd(projectId) {
method: 'put' method: 'put'
}) })
} }
// 权限菜单树
export function roleMenus(companyType) {
return request({
url: `/sys/menu/roleMenus?companyType=${companyType}`,
method: 'get'
})
}
// 添加角色
export function roleadd(data) {
return request({
url:"sys/role/add",
method: 'post',
data:data
})
}
// 部署线上 // 部署线上
export function autodeploy() { export function autodeploy() {
......
import request from '@/utils/request'
// 添加角色
export function roleadd(data) {
return request({
url:"sys/role/add",
method: 'post',
data:data
})
}
// 角色列表删除
export function userdelete(userId) {
return request({
url:`sys/user/delete/${userId}`,
method: 'delete',
})
}
// 角色列表
export function roleList(companyType) {
return request({
url:`sys/role/roleList?companyType=${companyType}`,
method: 'get',
})
}
// 角色编辑
export function useredit(data) {
return request({
url:"sys/user/edit",
method: 'post',
data:data
})
}
// 添加成员
export function useradd(data) {
return request({
url:"sys/user/add",
method: 'post',
data:data
})
}
// 验证手机唯一性
export function checkAccount(account) {
return request({
url:`/sys/user/check/account/${account}`,
method: 'get',
})
}
// 权限菜单树
export function roleMenus(companyType) {
return request({
url: `/sys/menu/roleMenus?companyType=${companyType}`,
method: 'get'
})
}
...@@ -277,6 +277,14 @@ export function contractdetail(projectId) { ...@@ -277,6 +277,14 @@ export function contractdetail(projectId) {
method: 'get', method: 'get',
}) })
} }
// 中标公告查看
export function noticeWin(projectId) {
return request({
url: `notice/winNotice/${projectId}`,
method: 'get',
})
}
// 中标候选人公示查看 // 中标候选人公示查看
export function publicitydetail(projectId) { export function publicitydetail(projectId) {
return request({ return request({
......
...@@ -146,7 +146,7 @@ img { ...@@ -146,7 +146,7 @@ img {
.navs>.active { .navs>.active {
border-bottom: 2px solid #2288EE; border-bottom: 2px solid #2288EE;
color:#2288EE color: #2288EE
} }
.content-head { .content-head {
...@@ -193,17 +193,23 @@ img { ...@@ -193,17 +193,23 @@ img {
justify-content: flex-end; justify-content: flex-end;
background: #fff; background: #fff;
} }
.centerButton { .centerButton {
padding: 20px 20px; padding: 20px 20px;
display: flex; display: flex;
justify-content: center; justify-content: center;
background: #fff; background: #fff;
} }
.tips{
color:#FF0000 .tips {
color: #FF0000
} }
.message .el-input {
width: 250px!important; .message .el-input {
width: 250px !important;
}
.el-icon-circle-close {
color: white;
} }
\ No newline at end of file
...@@ -163,13 +163,12 @@ export default { ...@@ -163,13 +163,12 @@ export default {
}) })
this.objInput = obj this.objInput = obj
} }
let pageObj = this.pageObj this.getauditList()
console.log(pageObj)
this.getauditList(pageObj)
}, },
// //
methods: { methods: {
async getauditList(pageObj) { async getauditList() {
let pageObj = this.pageObj
let url = this.url let url = this.url
const { code, data, total } = await getList(pageObj, url) const { code, data, total } = await getList(pageObj, url)
if (code === 200) { if (code === 200) {
...@@ -209,7 +208,8 @@ export default { ...@@ -209,7 +208,8 @@ export default {
query() { query() {
let message=this.objInput; let message=this.objInput;
Object.assign(message,this.pageObj) Object.assign(message,this.pageObj)
this.getauditList(message) console.log(message)
this.list(message)
}, },
// check选择id // check选择id
handleSelectionChange(val) { handleSelectionChange(val) {
......
...@@ -15,8 +15,12 @@ import store from "@/store/index"; ...@@ -15,8 +15,12 @@ import store from "@/store/index";
import VueClipboard from 'vue-clipboard2' import VueClipboard from 'vue-clipboard2'
Vue.use(VueClipboard) Vue.use(VueClipboard)
// 右边导航栏自动到最底部
import VueChatScroll from 'vue-chat-scroll' import VueChatScroll from 'vue-chat-scroll'
Vue.use(VueChatScroll) Vue.use(VueChatScroll)
// 按钮6S后可以点击
import preventClick from '@utils/clickStatefrom' // 根据自己的路径
Vue.use(preventClick)
Vue.config.productionTip = false; Vue.config.productionTip = false;
Vue.use(VueI18n); Vue.use(VueI18n);
......
...@@ -19,11 +19,12 @@ ...@@ -19,11 +19,12 @@
<el-input v-model.trim="ruleForm.type" maxlength="30"></el-input> <el-input v-model.trim="ruleForm.type" maxlength="30"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="澄清质询回复截止时间" prop="cutOffTime"> <el-form-item label="澄清质询回复截止时间" prop="cutOffTime">
<el-date-picker v-model="ruleForm.cutOffTime" type="datetime" placeholder="选择日期时间"> <el-date-picker v-model="ruleForm.cutOffTime" type="datetime" placeholder="选择日期时间" format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="选择投标人" prop="CompanyId"> <el-form-item label="选择投标人" prop="CompanyId">
<el-radio v-model="ruleForm.CompanyId" v-for="(item,index) in CompanyIds" :label="item.companyId">{{item.companyName}}</el-radio> <el-radio v-model="ruleForm.CompanyId" v-for="(item,index) in CompanyIds" :label="item.companyId" :key="item.companyId">{{item.companyName}}</el-radio>
</el-form-item> </el-form-item>
<el-form-item label="澄清质询问题内容" prop="content"> <el-form-item label="澄清质询问题内容" prop="content">
<el-input v-model.trim="ruleForm.content" :rows="2" type="textarea" maxlength="300"></el-input> <el-input v-model.trim="ruleForm.content" :rows="2" type="textarea" maxlength="300"></el-input>
...@@ -82,7 +83,6 @@ ...@@ -82,7 +83,6 @@
trigger: 'blur' trigger: 'blur'
}], }],
cutOffTime: [{ cutOffTime: [{
type: 'date',
required: true, required: true,
message: '请选择时间', message: '请选择时间',
trigger: 'blur' trigger: 'blur'
......
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
<el-button @click="failDetail" v-else>流标信息</el-button> <el-button @click="failDetail" v-else>流标信息</el-button>
<div> <div>
<el-button icon="el-icon-refresh" @click="refrsh">刷新</el-button> <el-button icon="el-icon-refresh" @click="refrsh">刷新</el-button>
<el-button @click="isopenInfo1=true" :disabled="!endbidButton" v-if="!issueTable">下发开标一览表</el-button> <el-button @click="openInfo1" :disabled="!endbidButton" v-if="!issueTable">下发开标一览表</el-button>
<el-button @click="openInfo" :disabled="!issueTable">查看开标一览表</el-button> <el-button @click="openInfo" :disabled="!issueTable">查看开标一览表</el-button>
</div> </div>
<el-button @click="back">退出大厅<i class="el-icon-right"></i></el-button> <el-button @click="back">退出大厅<i class="el-icon-right"></i></el-button>
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
</div> </div>
<div class="button"> <div class="button">
<el-button @click="upper">上一步</el-button> <el-button @click="upper">上一步</el-button>
<el-button type="primary" @click="next">发布</el-button> <el-button type="primary" @click="next" >发布</el-button>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -15,7 +15,8 @@ ...@@ -15,7 +15,8 @@
</template> </template>
<script> <script>
import dataTable from '@components/dataTable.vue' import {roleList} from '@api/purchaser/organization'
import dataTable from '@components/nopageTable.vue'
import dataBreadcrumb from '@components/dataBreadcrumb.vue' import dataBreadcrumb from '@components/dataBreadcrumb.vue'
export default { export default {
components: { components: {
...@@ -25,20 +26,16 @@ export default { ...@@ -25,20 +26,16 @@ export default {
data() { data() {
return { return {
breads: ['系统管理', '角色权限'], breads: ['系统管理', '角色权限'],
tableData: [{ tableData: [],
name: '部长',
remark: 'XXXXX'
}],
columns: [{ columns: [{
label: '角色名称', label: '角色名称',
prop: 'name', prop: 'roleName',
width: 400 width: 400
}, },
{ {
label: '备注', label: '备注',
prop: 'remark', prop: 'remark',
width: 400 width: 400
}, },
{ {
slot: 'operate' slot: 'operate'
...@@ -62,7 +59,23 @@ export default { ...@@ -62,7 +59,23 @@ export default {
}, },
add(){ add(){
this.$router.push("/purchaser/organization/jurisdictionSee") this.$router.push("/purchaser/organization/jurisdictionSee")
} },
async getroleList() {
let type=JSON.parse(localStorage.getItem("userInfo")).type
const {
data,
code
} = await roleList(type)
for(let item of data){
if(!item.remark){
item.remark="空"
}
}
this.tableData=data
}
},
created() {
this.getroleList()
} }
} }
</script> </script>
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<script> <script>
import { import {
roleMenus,roleadd roleMenus,roleadd
} from '@api/common/list' } from '@api/purchaser/organization'
import dataBreadcrumb from '@components/dataBreadcrumb.vue' import dataBreadcrumb from '@components/dataBreadcrumb.vue'
export default { export default {
components: { components: {
......
...@@ -4,20 +4,23 @@ ...@@ -4,20 +4,23 @@
<dataBreadcrumb :breads="breads"></dataBreadcrumb> <dataBreadcrumb :breads="breads"></dataBreadcrumb>
<changeNav :navs="navs"></changeNav> <changeNav :navs="navs"></changeNav>
<div class="message"> <div class="message">
<div> <div class="flex-between">
<div>项目编号:{{projectCode}}</div> <div>项目编号:{{projectCode}}</div>
<div>项目名称:{{projectName}}</div> <div>项目名称:{{projectName}}</div>
</div> </div>
<div> <div v-if="state" class="flex-between">
<div>日期:2018-12-12</div> <div>日期:2018-12-12</div>
<div>招标结果通知书编号:11111</div> <div>招标结果通知书编号:11111</div>
</div> </div>
<div > <div v-if="state">
<div class="flex-item"> <div class="flex-between">
<div style="margin-right: 20px;">附件:中标通知书.pdf</div> <div style="margin-right: 20px;">附件:中标通知书.pdf</div>
<el-button size="mini">下载</el-button> <el-button size="mini">下载</el-button>
</div> </div>
</div> </div>
<div v-else class="detail1">
没找到招标结果通知书!
</div>
</div> </div>
<div class="centerButton"> <div class="centerButton">
<el-button @click="back">返回</el-button> <el-button @click="back">返回</el-button>
...@@ -37,10 +40,12 @@ export default { ...@@ -37,10 +40,12 @@ export default {
}, },
data() { data() {
return { return {
breads: ['投标管理 ', '我参加的项目', '工作台'], breads: ['投标管理 ', '我参加的项目', '工作s台'],
navs: ['招标结果通知书'], navs: ['招标结果通知书'],
projectCode:"", projectCode:"",
projectName:"" projectName:"",
detail:"",
state:true
} }
}, },
methods: { methods: {
...@@ -55,6 +60,12 @@ export default { ...@@ -55,6 +60,12 @@ export default {
data, data,
code code
} = await bidResultBook(message) } = await bidResultBook(message)
if(code==200){
this.detail=data
}else{
this.state=false
}
} }
}, },
created() { created() {
...@@ -68,6 +79,12 @@ export default { ...@@ -68,6 +79,12 @@ export default {
<style scoped> <style scoped>
.detail1{
text-align: center;
font-size: 20px;
font-weight: bold;
margin-top: 30px;
}
.content>h1{ .content>h1{
text-align: center; text-align: center;
margin-top:20px; margin-top:20px;
...@@ -86,8 +103,7 @@ export default { ...@@ -86,8 +103,7 @@ export default {
margin:0 auto margin:0 auto
} }
.message>div{ .message>div{
display:flex;
justify-content: space-between;
margin-bottom: 30px; margin-bottom: 30px;
} }
......
...@@ -9,13 +9,18 @@ ...@@ -9,13 +9,18 @@
<div class="flex-arround"> <div class="flex-arround">
<div>项目编号:{{projectCode}}</div> <div>项目编号:{{projectCode}}</div>
<div>项目名称:{{projectName}}</div> <div>项目名称:{{projectName}}</div>
<div>发布时间:2020-08-08 18:12</div> <div v-if="state">发布时间:2020-08-08 18:12</div>
</div> </div>
<h1>一级标题</h1> <div class='detail' v-if="state">
<div class="img"> <h1>一级标题</h1>
<img src="@static/images/content.png" alt=""> <div class="img">
</div> <img src="@static/images/content.png" alt="">
<div class="enclosure">相关附件:34567890-678.pdf</div> </div>
<div class="enclosure">相关附件:34567890-678.pdf</div>
</div>
<div v-else class="detail1">
未找到该公告详情!
</div>
<div class="centerButton"> <div class="centerButton">
<el-button @click="back">返回</el-button> <el-button @click="back">返回</el-button>
</div> </div>
...@@ -24,7 +29,7 @@ ...@@ -24,7 +29,7 @@
</template> </template>
<script> <script>
import { winBookdetail} from '@api/supply/bid' import { noticeWin} from '@api/supply/bid'
import dataBreadcrumb from '@components/dataBreadcrumb.vue' import dataBreadcrumb from '@components/dataBreadcrumb.vue'
export default { export default {
components: { components: {
...@@ -34,31 +39,44 @@ export default { ...@@ -34,31 +39,44 @@ export default {
return { return {
breads: ['投标管理 ', '我参加的项目', '工作台'], breads: ['投标管理 ', '我参加的项目', '工作台'],
projectCode:"", projectCode:"",
projectName:"" projectName:"",
state:true,
detail:""
} }
}, },
methods: { methods: {
back(){ back(){
this.$router.go(-1) this.$router.go(-1)
}, },
async getwinBookdetail() { async getnoticeWin() {
let projectId=localStorage.getItem("projectId") let projectId=localStorage.getItem("projectId")
const { const {
data, data,
code code
} = await winBookdetail(projectId) } = await noticeWin(projectId)
if(code==200){
this.detail=data
}else{
this.state=false
}
} }
}, },
created() { created() {
this.projectCode=localStorage.getItem("projectCode") this.projectCode=localStorage.getItem("projectCode")
this.projectName=localStorage.getItem("projectName") this.projectName=localStorage.getItem("projectName")
this.getwinBookdetail() this.getnoticeWin()
} }
} }
</script> </script>
<style scoped> <style scoped>
.detail1{
text-align: center;
font-size: 20px;
font-weight: bold;
margin-top: 30px;
}
.content>h1{ .content>h1{
text-align: center; text-align: center;
margin-top:20px; margin-top:20px;
......
export default {
install (Vue) {
// 防止重复点击
Vue.directive('preventClick', {
inserted (el, binding) {
el.addEventListener('click', () => {
if (!el.disabled) {
el.disabled = true
setTimeout(() => {
el.disabled = false
}, 6000)
}
})
}
})
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment