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

角色和成员

parent 48821df5
......@@ -165,21 +165,8 @@ export function projectEnd(projectId) {
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() {
......
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) {
method: 'get',
})
}
// 中标公告查看
export function noticeWin(projectId) {
return request({
url: `notice/winNotice/${projectId}`,
method: 'get',
})
}
// 中标候选人公示查看
export function publicitydetail(projectId) {
return request({
......
......@@ -146,7 +146,7 @@ img {
.navs>.active {
border-bottom: 2px solid #2288EE;
color:#2288EE
color: #2288EE
}
.content-head {
......@@ -193,17 +193,23 @@ img {
justify-content: flex-end;
background: #fff;
}
.centerButton {
padding: 20px 20px;
display: flex;
justify-content: center;
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 {
})
this.objInput = obj
}
let pageObj = this.pageObj
console.log(pageObj)
this.getauditList(pageObj)
this.getauditList()
},
//
methods: {
async getauditList(pageObj) {
async getauditList() {
let pageObj = this.pageObj
let url = this.url
const { code, data, total } = await getList(pageObj, url)
if (code === 200) {
......@@ -209,7 +208,8 @@ export default {
query() {
let message=this.objInput;
Object.assign(message,this.pageObj)
this.getauditList(message)
console.log(message)
this.list(message)
},
// check选择id
handleSelectionChange(val) {
......
......@@ -15,8 +15,12 @@ import store from "@/store/index";
import VueClipboard from 'vue-clipboard2'
Vue.use(VueClipboard)
// 右边导航栏自动到最底部
import VueChatScroll from 'vue-chat-scroll'
Vue.use(VueChatScroll)
// 按钮6S后可以点击
import preventClick from '@utils/clickStatefrom' // 根据自己的路径
Vue.use(preventClick)
Vue.config.productionTip = false;
Vue.use(VueI18n);
......
......@@ -19,11 +19,12 @@
<el-input v-model.trim="ruleForm.type" maxlength="30"></el-input>
</el-form-item>
<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-form-item>
<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 label="澄清质询问题内容" prop="content">
<el-input v-model.trim="ruleForm.content" :rows="2" type="textarea" maxlength="300"></el-input>
......@@ -82,7 +83,6 @@
trigger: 'blur'
}],
cutOffTime: [{
type: 'date',
required: true,
message: '请选择时间',
trigger: 'blur'
......
......@@ -70,7 +70,7 @@
<el-button @click="failDetail" v-else>流标信息</el-button>
<div>
<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>
</div>
<el-button @click="back">退出大厅<i class="el-icon-right"></i></el-button>
......
......@@ -30,7 +30,7 @@
</div>
<div class="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>
......
......@@ -15,7 +15,8 @@
</template>
<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'
export default {
components: {
......@@ -25,20 +26,16 @@ export default {
data() {
return {
breads: ['系统管理', '角色权限'],
tableData: [{
name: '部长',
remark: 'XXXXX'
}],
tableData: [],
columns: [{
label: '角色名称',
prop: 'name',
prop: 'roleName',
width: 400
},
{
label: '备注',
prop: 'remark',
width: 400
width: 400
},
{
slot: 'operate'
......@@ -62,7 +59,23 @@ export default {
},
add(){
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>
......
......@@ -28,7 +28,7 @@
<script>
import {
roleMenus,roleadd
} from '@api/common/list'
} from '@api/purchaser/organization'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
export default {
components: {
......
......@@ -4,20 +4,23 @@
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
<changeNav :navs="navs"></changeNav>
<div class="message">
<div>
<div class="flex-between">
<div>项目编号:{{projectCode}}</div>
<div>项目名称:{{projectName}}</div>
</div>
<div>
<div v-if="state" class="flex-between">
<div>日期:2018-12-12</div>
<div>招标结果通知书编号:11111</div>
</div>
<div >
<div class="flex-item">
<div v-if="state">
<div class="flex-between">
<div style="margin-right: 20px;">附件:中标通知书.pdf</div>
<el-button size="mini">下载</el-button>
</div>
</div>
<div v-else class="detail1">
没找到招标结果通知书!
</div>
</div>
<div class="centerButton">
<el-button @click="back">返回</el-button>
......@@ -37,10 +40,12 @@ export default {
},
data() {
return {
breads: ['投标管理 ', '我参加的项目', '工作台'],
breads: ['投标管理 ', '我参加的项目', '工作s台'],
navs: ['招标结果通知书'],
projectCode:"",
projectName:""
projectName:"",
detail:"",
state:true
}
},
methods: {
......@@ -55,6 +60,12 @@ export default {
data,
code
} = await bidResultBook(message)
if(code==200){
this.detail=data
}else{
this.state=false
}
}
},
created() {
......@@ -68,6 +79,12 @@ export default {
<style scoped>
.detail1{
text-align: center;
font-size: 20px;
font-weight: bold;
margin-top: 30px;
}
.content>h1{
text-align: center;
margin-top:20px;
......@@ -86,8 +103,7 @@ export default {
margin:0 auto
}
.message>div{
display:flex;
justify-content: space-between;
margin-bottom: 30px;
}
......
......@@ -9,13 +9,18 @@
<div class="flex-arround">
<div>项目编号:{{projectCode}}</div>
<div>项目名称:{{projectName}}</div>
<div>发布时间:2020-08-08 18:12</div>
<div v-if="state">发布时间:2020-08-08 18:12</div>
</div>
<h1>一级标题</h1>
<div class="img">
<img src="@static/images/content.png" alt="">
</div>
<div class="enclosure">相关附件:34567890-678.pdf</div>
<div class='detail' v-if="state">
<h1>一级标题</h1>
<div class="img">
<img src="@static/images/content.png" alt="">
</div>
<div class="enclosure">相关附件:34567890-678.pdf</div>
</div>
<div v-else class="detail1">
未找到该公告详情!
</div>
<div class="centerButton">
<el-button @click="back">返回</el-button>
</div>
......@@ -24,7 +29,7 @@
</template>
<script>
import { winBookdetail} from '@api/supply/bid'
import { noticeWin} from '@api/supply/bid'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
export default {
components: {
......@@ -34,31 +39,44 @@ export default {
return {
breads: ['投标管理 ', '我参加的项目', '工作台'],
projectCode:"",
projectName:""
projectName:"",
state:true,
detail:""
}
},
methods: {
back(){
this.$router.go(-1)
},
async getwinBookdetail() {
async getnoticeWin() {
let projectId=localStorage.getItem("projectId")
const {
data,
code
} = await winBookdetail(projectId)
} = await noticeWin(projectId)
if(code==200){
this.detail=data
}else{
this.state=false
}
}
},
created() {
this.projectCode=localStorage.getItem("projectCode")
this.projectName=localStorage.getItem("projectName")
this.getwinBookdetail()
this.getnoticeWin()
}
}
</script>
<style scoped>
.detail1{
text-align: center;
font-size: 20px;
font-weight: bold;
margin-top: 30px;
}
.content>h1{
text-align: center;
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