| | |
| | | .handleBtn.is-disabled { |
| | | color: #C0C4CC; |
| | | } |
| | | .red{ |
| | | color: red !important; |
| | | } |
| | | </style> |
| | | <style> |
| | | /* .value-table .highlight-warning-row-border td { |
| | |
| | | :summary-method="getSummaries" :row-class-name="tableRowClassName" :row-key="record=>record.id" |
| | | :current-row-key="data.currentId" :highlight-current-row="data.highlight===undefined||data.highlight" |
| | | :span-method="spanMethod" :key="specialKey"> |
| | | <el-table-column type="selection" width="65" v-if="data.showSelect" :key="Math.random()"> |
| | | <el-table-column type="selection" :width="selectionWidth" v-if="data.showSelect" :key="Math.random()"> |
| | | </el-table-column> |
| | | <el-table-column type="index" align="center" label="序号" width="65" v-if="data.isIndex" :key="Math.random()"> |
| | | <el-table-column type="index" align="center" label="序号" :width="selectionWidth" v-if="data.isIndex" :key="Math.random()"> |
| | | </el-table-column> |
| | | <el-table-column :prop="a.label" :label="a.value" :sortable="data.sort==false?false:'custom'" |
| | | v-for="(a, ai) in tableHead" :key="ai" show-overflow-tooltip min-width="155"> |
| | | <el-table-column :prop="a.label" :label="a.value" :sortable="data.sort==false?false:'custom'" :isColumnWidth="isColumnWidth" :width="a.width" |
| | | v-for="(a, ai) in tableHead" :key="ai" show-overflow-tooltip :min-width="columnMinWidth" v-if="!data.headNoShow||(data.headNoShow&&data.headNoShow.length==0)||(data.headNoShow&&data.headNoShow.length>0&&!data.headNoShow.find(d=>d==a.label))"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="showType(a.label, data.tagField) != null"> |
| | | <template v-if="typeof(scope.row[a.label]) == 'object'"> |
| | |
| | | @click="handleLinkEvent(scope.row,data.linkEvent[a.label])">{{scope.row[a.label]}}</span> |
| | | <img style="width: 40px;height: 40px;margin-top: 10px;" :src="javaApi+'/img/'+scope.row[a.label]" |
| | | v-else-if="showUpload(a.label)&&scope.row[a.label]" alt=""> |
| | | <span v-else>{{scope.row[a.label]}}</span> |
| | | <span v-else :class="{red:getRedColor(a.label,scope.row)}" >{{scope.row[a.label]}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" align="center" label="操作" :width="getWidth()" v-if="data.do.length > 0"> |
| | |
| | | <el-dialog title="数据导入" :visible.sync="uploadDia" width="500px"> |
| | | <div style="margin: 0 auto;"> |
| | | <el-upload ref="upload" drag :action="javaApi + inputUrl" :headers="token" :file-list="fileList" name="file" |
| | | :auto-upload="false" accept=".csv" :limit="1" :on-change="beforeUpload" :on-success="onSuccess" |
| | | :auto-upload="false" :accept="data.accept===undefined?'.csv':data.accept" :limit="1" :on-change="beforeUpload" :on-success="onSuccess" |
| | | :on-error="onError" :data="{param: data.uploadStr}"> |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> |
| | |
| | | } from 'jquery'; |
| | | export default { |
| | | props: { |
| | | selectionWidth: { |
| | | type: String, |
| | | default: () => '65' |
| | | }, |
| | | columnMinWidth: { |
| | | type: String, |
| | | default: () => '155' |
| | | }, |
| | | isColumnWidth: { |
| | | type: Boolean, |
| | | default: () => false |
| | | }, |
| | | tableRowClassName: { |
| | | type: Function |
| | | }, |
| | |
| | | this.selectList('page') |
| | | }, |
| | | selectList(val) { |
| | | console.log('val---', val) |
| | | console.log('this.page---', this.page) |
| | | this.loading = true |
| | | if(val===undefined){ |
| | | this.page.current = 1; |
| | |
| | | this.total = res.data.body.total |
| | | this.tableHead = res.data.head |
| | | this.tableData = res.data.body.records |
| | | if (this.isColumnWidth) { |
| | | this.tableHead.forEach(item => { |
| | | if (item.value.length === 4) { |
| | | item.width = 120 |
| | | } else if (item.value.length === 3){ |
| | | item.width = 100 |
| | | } else if (item.value.length === 5){ |
| | | item.width = 130 |
| | | } else if (item.value.length === 7){ |
| | | item.width = 160 |
| | | } else if (item.value.length === 6){ |
| | | item.width = 150 |
| | | } else { |
| | | item.width = 86 |
| | | } |
| | | }) |
| | | } |
| | | // console.log(JSON.stringify(this.tableHead)+"---------"+JSON.stringify(this.tableData)) |
| | | for (var a in this.data.selectField) { |
| | | if (this.data.selectField[a].choose == true) { |
| | |
| | | } |
| | | this.$message.success('删除成功') |
| | | this.selectList() |
| | | this.$emit('delete') |
| | | }).catch(e => { |
| | | this.$message.error('删除失败') |
| | | }) |
| | |
| | | return |
| | | } |
| | | } |
| | | this.upLoad = true |
| | | for (var a in this.data.selectField) { |
| | | if (this.data.selectField[a].choose == true) { |
| | | this.upData[a] = JSON.stringify(this.upData[a]) |
| | | } |
| | | } |
| | | this.upHead.forEach((item, index) => { |
| | | if (this.data.cascaderField && this.data.cascaderField[item.label]) { |
| | | if (this.upData[item.label]) { |
| | | this.upData[item.label] = JSON.stringify(this.upData[item.label]) |
| | | } else { |
| | | this.upData[item.label] = '' |
| | | for (var i = 0; i < this.upHead.length; i++) { |
| | | if(this.upHead[i].label == 'password'){ |
| | | if(this.upData[this.upHead[i].label]){ |
| | | const reg2 =/^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[~!#@$%^*&()_+{}\[\]|\\;:'",<.>\/?])[a-zA-Z\d~!#@$%^*&()_+{}\[\]|\\;:'",<.>\/?]*$/; |
| | | if (!reg2.test(this.upData[this.upHead[i].label])) { |
| | | this.$message.error('密码必须包括数字、大小写字母以及特殊字符') |
| | | return |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | if (this.data.cascaderField && this.data.cascaderField[this.upHead[i].label]) { |
| | | if (this.upData[this.upHead[i].label]) { |
| | | this.upData[this.upHead[i].label] = JSON.stringify(this.upData[this.upHead[i].label]) |
| | | } else { |
| | | this.upData[this.upHead[i].label] = '' |
| | | } |
| | | } |
| | | } |
| | | this.upLoad = true |
| | | this.$axios.post(this.upUrl, this.upData, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | |
| | | this.uploadDia = true |
| | | }, |
| | | beforeUpload(file, fileList) { |
| | | if (file.raw.type != 'text/csv') { |
| | | console.log(file.raw.type); |
| | | if (file.raw.type != (this.data.inputType===undefined?'text/csv':this.data.inputType)) { |
| | | this.$message.error('上传文件格式不正确'); |
| | | this.$refs.upload.clearFiles() |
| | | return false; |
| | |
| | | this.$message.error('请选择要删除的数据') |
| | | } |
| | | }, |
| | | // 日工时管理辅助工时--批量审核和批准 |
| | | batchCheck(e) { |
| | | if (this.multipleSelection && this.multipleSelection.length > 0) { |
| | | const list = JSON.parse(JSON.stringify(this.multipleSelection)) |
| | | const url = e === 0 ? this.$api.auxiliaryWorkingHoursDay.check : this.$api.auxiliaryWorkingHoursDay.approve |
| | | const state = e === 0 ? '已审核' : '已批准' |
| | | list.forEach(item => { |
| | | this.$axios.post(url, {id: item.id, state: state |
| | | },{ |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | } |
| | | ).then(res => { |
| | | if (res.code === 201) { |
| | | return |
| | | } |
| | | this.$parent.submitBatchCheckDialog() |
| | | this.$message.success('操作成功') |
| | | }) |
| | | }) |
| | | } else { |
| | | this.$message.error('请选择至少一条数据') |
| | | } |
| | | }, |
| | | getRedColor(label,row){ |
| | | if(this.data.cellSpecialStyle&&this.data.cellSpecialStyle.redColorByKey&&label.includes(this.data.cellSpecialStyle.redColorByKey)&&row[(label.replace(this.data.cellSpecialStyle.redColorByKey, ""))]){ |
| | | return true |
| | | }else{ |
| | | return false |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |