首页 > 其他分享 >第二次完美完成工作,心态爽爽的。

第二次完美完成工作,心态爽爽的。

时间:2023-05-24 15:45:01浏览次数:33  
标签:name userList 爽爽 心态 permission phone 完美 item row

<template>
<div>
<!--表单搜索档2023-5-23,gpt歌者文明-->
<div class="search_stat">
<app-search :searchByCompany="false" @search="search" :searchFieldArray.sync="searchFieldArray"/>
</div>
<!--表格上的点击点击的标题-->
<div class="table_wrapper">
<div class="table_header">
<span class="table_name">班次为员列有记录</span>
<span class="table_name adduser" @click="addCoupon">新增班次人员</span>
</div>
<!--表格正文,这是同杨队长代码复制改化成咯,第一个表格有一个表单,是可以单选和全选的-->
<el-table
border
:data="personList">
<el-table-column type="selection" width="55"></el-table-column>
<!--判断是显示编辑还是查看,这个设想是状态1就是编辑,状态二就是查看,-->
<el-table-column label="操作">
<template slot-scope="scope">
<el-button v-if="scope.row.status !== '0'" @click="handleEdit(scope.row)">编辑</el-button>
<el-button v-else @click="handleView(scope.row)">查看</el-button>
</template>
</el-table-column>
<!-- 这儿当班人员是一个数组,需要遍历填充,2023-5-23-->
<el-table-column prop="userList" label="当班人员">

<template slot-scope="scope">{{ scope.row.userList.split(',').join(',') }}</template>
</el-table-column>
<el-table-column prop="creator" label="创建人"></el-table-column>
<el-table-column sortable prop="creatDate" label="创建时间"></el-table-column>
<el-table-column sortable prop="editor" label="修改人"></el-table-column>
<el-table-column sortable prop="editDate" label="修改时间"></el-table-column>
<el-table-column sortable prop="status" label="状态">
<template v-slot="{row}">
<el-tag :type="row.status == 0 ? 'success' : row.status == 1 ? 'danger' : 'warning'">
{{row.status == 0 ? '历史' : row.status == 2 ? '预备' : '当前'}}
</el-tag>
</template>
</el-table-column>
</el-table>

<!-- 弹出层显示,这儿的数据只是展示不能修改,遍历当班人员的对象,-->
<el-dialog title="查看当班数据" :visible.sync="showActive">
<div>
<el-table
border
:data="viewForm">
<el-table-column prop="name" label="选择人员"></el-table-column>
<el-table-column prop="permission" label="角色"></el-table-column>
<el-table-column prop="phone" label="电话"></el-table-column>
<el-table-column sortable prop="new date()" label="修改时间"></el-table-column>
</el-table>
</div>
</el-dialog>
<!-- 这是一个编辑的弹出层罗辑-->
<el-dialog title="编辑" :visible.sync="editDialogVisible">
<div>
<div style="margin: 15px;">
<el-button @click="handleAdd">新增</el-button>
<el-button @click="handleSave">保存</el-button>
</div>
<el-table
border
:data="editTableData">
<el-table-column prop="edit" label="选择人员">
<template slot-scope="scope">
<el-select v-model="scope.row.name" placeholder="请选择" @change="handleNameChange(scope.row)">
<el-option v-for="item in List" :key="item.id" :label="item.label" :value="item.name"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="phone" label="电话"></el-table-column>
<el-table-column prop="permission" label="角色"></el-table-column>
<el-table-column sortable prop="cz" label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="handleDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>

</el-table>
</div>
</el-dialog>

<!-- 以下是分页组件-->
<!-- <app-pagination ref="pagination" :params="queryParams" :url="url" :tableList.sync="tableList"></app-pagination>-->
</div>
</div>
</template>

<script>
import AppPagination from "@/components/AppPagination/index"
import AppSearch from "@/components/AppSearch/index"
import Template from "@/components/Coupon/template5/template";
import InputTag from "@/components/InputTag";

export default {
components: {InputTag, Template, AppPagination, AppSearch,},
props: {
assetId: {
require: false,
},
},
data() {
return {
showActive: false,
editDialogVisible: false,
viewForm: [],
editTableData: [],
tableList: [],
currentIndex: null,
url: this.ZYBAPI.BALANCE_STAT_PAGE,
queryParams: {
assetId: this.assetId,
},
personList: [
{userList: '张三,王五', creator: '张三',creatDate: '2023-05-20',editor: '张三',editDate: '2023-05-20',status: '1',},
{userList: '张三,李四', creator: '张三',creatDate: '2023-05-20',editor: '张三',editDate: '2023-05-20',status: '0',},
],
// 用于弹出层编辑时的初始数组
// 这个对象是用于弹出层获取数组时需要权限或其它参数的例表
List: [
{id:1,label: '张三', name: '张三', phone: '13525', permission: '管理员'},
{id:2,label: '李四', name: '李四', phone: '13230', permission: '普通员工'},
{id:3,label: '王五', name: '王五', phone: '13228', permission: '财务'},
{id:4,label: '赵六', name: '赵六', phone: '131288', permission: '主管'},
{id:5,label: '谢八', name: '谢八', phone: '159285', permission: '主管'},
{id:6,label: '周力', name: '周力', phone: '132258', permission: '普通员工'},

],
searchFieldArray: [
{
type: "date",
key: "createTime",
value: '',
start_placeholder: "开始时间",
end_placeholder: "结束时间",
},
{
type: "input_search",
key: "fromUserId",
placeholder: "姓名/手机号",
selectUrl: this.API.SEARCH_USER,
value: '',
optionsList: []
},
]

}
},
created() {
this.initData();
},
methods: {
initData() {

},
handleDelete(index) {
// 删除一行数据
console.log(index)
this.editTableData.splice(index, 1)
},
handleEdit(row) {
// 打开编辑弹出层
this.editDialogVisible = true
// 根据userList字符串切割生成表格数据

const userList = row.userList.split(',')
this.editTableData = userList.map(name => {
const item = this.List.find(user => user.name === name)
return {
name: item.name,
age: item.age,
permission: item.permission,
phone: item.phone
}
})
// 保存当前修改的行,2023-5-23
this.currentIndex = this.personList.indexOf(row)
console.log("保存到几行,记录行号" + this.currentIndex)
},

handleView(row) {
// 弹出查看弹出层,这儿是复制这一行,逻辑改过了
// this.viewForm = Object.assign({}, row)
const userList = row.userList.split(',')
this.viewForm = userList.map(name => {
const item = this.List.find(user => user.label === name)
return {
name: item.label,
age: item.age,
permission: item.permission,
phone: item.phone
}
})


this.showActive = true
},


handleSave() {
const userList = this.editTableData.map(item => item.name).join(',')

const tList = userList.split(',')
// 2023-5-23 判断是否重复
var containsDuplicate = function(nums){
return nums.length !== [...new Set(nums)].length
}

if(!containsDuplicate(tList)){
console.log("当前保存的值函数名hanleSave" + userList)
this.personList[this.currentIndex].userList = userList

}else {
alert("有重复")
}
this.editDialogVisible = false
},

// 当编辑菜单下拉框改变时,通过查找到的值去的list的值,然后保存到字段中显示
handleNameChange(row) {
let find = false
// 以下是更新选择后的字段
const item = this.List.find(user => user.name === row.name)
row.name = item.name
row.permission = item.permission
row.phone = item.phone
console.log("通过下拉菜单更新后的例" + row.name)
},
handleAdd() {
// 新增一行数据
this.editTableData.push({
name: '',
age: '',
permission: '',
phone: '',
})
},
search(params) {
if (this.assetId) {
params["assetId"] = this.assetId;
}
this.queryParams = params;
},

addCoupon() {
this.personList.unshift({
userList: '',
creator: '',
creatDate: '',
editor: '',
editDate: '',
status: '1',

})

},
},
}
</script>

<style lang="scss" scoped>
.adduser {
display: inline-block;
margin-left: 15px;
padding-left: 10px;
height: 20px;
line-height: 30px;
}

.m15px {
margin-right: 25px;
}
</style>

标签:name,userList,爽爽,心态,permission,phone,完美,item,row
From: https://www.cnblogs.com/fgxwan/p/17428510.html

相关文章

  • 皕杰报表+DataEase,中式复杂报表与数据可视化的完美组合
    在商业智能解决方案中,数据的展现及业务规律的呈现是商业智能中极其重要的组成部分。长久以来,由于数据源复杂多样性,以及中国传统文化的对于数据表格的工整、对称等等的影响下,报表工具一直担当着商业智能的数据展现中主角的位置;最近随着显示屏技术的发展、大屏价格的下调,数据大屏及数......
  • 洛谷 P9248 - [集训队互测 2018] 完美的集合
    显然,如果选择的\(k\)个“合法集合”固定了,那么可以放置装置的点如果存在,那么必然形成一个连通块,也就是说,答案等于所有合法方案中,可以放置装置的点形成的连通块个数之和。而根据点减边的套路,这等价于,枚举每个点,计算有多少种方案满足可以在其放置装置,再枚举每条边,计算有多少种方案......
  • 心态记录
    这样太消耗精力了,半夜起床都要看看比分是否中了,然后再算算,不管中了,还是没中,都得一会睡不着,中了还好,没中真的是难受啊我想这种也和刚开始看nba的时候直播一样,就想第一时间了解到比分输赢情况我还是刚开始玩,心态还是不稳定的,需要再持续一段有很多人看到了中的单子,就后悔没跟,跟去......
  • gitee图床不能用了,心态崩了
    起因大概上周五晚上吧,想着可以正常下班了。也没啥事,正好可以逛逛自己的小破站,看看有没有小伙伴留言什么的。然后发现小破站图片显示不出来了。。。一开始也没在意,想着可能是Gitee又挂了,可能一会就好了,那就再等等吧。。。正好可以把之前没写完的博客给写完。写着写着还是得用......
  • Labview Ethernetip TCP网口通讯欧姆龙PLC OmronNX1P2NJ501NJ301PLC标签通讯 CIP通讯
    LabviewEthernetipTCP网口通讯欧姆龙PLCOmronNX1P2NJ501NJ301PLC标签通讯CIP通讯比Fins通讯更完美。1.自定义变量读写2.支持Bool单点或数组读写3支持数字格式单个或者数组读写4支持浮点数单个或者数组读写程序经过测试准确运行从此远离%转换成Fins.YID:89188668382736575......
  • c# can总线开发接口源代码,完美解决内存溢出,程序闪退问题,可放心使用。
    c#can总线开发接口源代码,完美解决内存溢出,程序闪退问题,可放心使用。另本示例中还有TCPClient,串口连接源代码,供给有需要的人学习。ID:4830648911771998......
  • 终于找到了C++成员函数做函数指针的完美解决办法
    当然,这是转自别人的:https://www.codenong.com/19808054/之前因为这个没少废精力啊,这里记一下,感谢外国友人的回答.1#include<iostream>2#include<functional>3#include<string>4#include<sstream>5#include<memory>67usingnamespacestd;89......
  • 如何将网页中的目录完美地浮动在主要内容的侧边距中
    诸安,我是之于言者。去年我在编写戴森球计划wiki时遇到一个需求:将文档流中的目录提取出来,使之固定在屏幕左侧。简而言之,就是将这样的网页:转化成这样的网页:原来的网页源代码可以简写成这个样子:<!DOCUMENThtml><html><head> <style> :root{ --border--:1pxsolidrg......
  • win10完美去除快捷方式小箭头的方法
    网上有多种修改注册表的方式去除快捷方式小箭头,但容易导致任务栏不能使用,接下来介绍一种批处理的模式。 1.去掉小箭头复制以下代码到TXT文档,并保存。保存后修改.txt后缀为.bat,如果电脑不显示后缀,可以在我的电脑-查看-勾选文件扩展名。完成后以管理员身份运行即可regadd"HK......
  • 完美的背景图全屏css代码 – background-size:cover?
    写主题样式的时候经常会碰到用背景图铺满整个背景的需求,这里分享下使用方法需要的效果图片以背景的形式铺满整个屏幕,不留空白区域保持图像的纵横比(图片不变形)图片居中不出现滚动条多浏览器支持以图片bg.jpg为例方法一、最简单,最高效的方法 CSS3.0归功于css3.0新增的一......