| | |
| | | .handleBtn.is-disabled { |
| | | color: #C0C4CC; |
| | | } |
| | | |
| | | .red{ |
| | | color: red !important; |
| | | } |
| | | |
| | | >>>.el-loading-parent--relative { |
| | | z-index: 1 !important; |
| | | } |
| | | |
| | | >>> .el-table__body-wrapper::-webkit-scrollbar { |
| | | height: 14px; /* 设置滚动条宽度 */ |
| | | height: 14px; |
| | | /* 设置滚动条宽度 */ |
| | | } |
| | | </style> |
| | | <style> |
| | |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .el-table__empty-text{ |
| | | text-align: left; |
| | | width: 100%; |
| | | display: inline-block; |
| | | margin-left: 200px; |
| | | } |
| | | |
| | | </style> |
| | | |
| | | <template> |
| | | <div class="value-table"> |
| | | <div :style="data.isPage!=undefined&&data.isPage!=true?'height:100%':''" class="table"> |
| | | <el-table :key="specialKey" ref="eltable" v-loading="loading" :current-row-key="data.currentId" :data="tableData" :highlight-current-row="data.highlight===undefined||data.highlight" |
| | | :row-class-name="tableRowClassName" :row-key="record=>record[rowKey]" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0" :span-method="spanMethod" |
| | | :summary-method="getSummaries" |
| | | height="100%" style="width: 100%;" tooltip-effect="dark" |
| | | @select="select" @selection-change="selectChange" |
| | | @sort-change="sortChange" @row-click="rowClick"> |
| | | <el-table :key="specialKey" ref="eltable" v-loading="loading" :current-row-key="data.currentId" :data="tableData" |
| | | :highlight-current-row="data.highlight === undefined || data.highlight" :row-class-name="tableRowClassName" |
| | | :row-key="record => record[rowKey]" :show-summary="data.countFleid != undefined && data.countFleid.length > 0" |
| | | :span-method="spanMethod" :summary-method="getSummaries" height="100%" style="width: 100%;" |
| | | tooltip-effect="dark" @select="select" @selection-change="selectChange" @sort-change="sortChange" |
| | | @row-click="rowClick"> |
| | | <el-table-column v-if="data.showSelect" :key="Math.random()" :width="selectionWidth" type="selection"> |
| | | </el-table-column> |
| | | <el-table-column v-if="data.isIndex" :key="Math.random()" :width="selectionWidth" align="center" label="序号" type="index"> |
| | | <el-table-column v-if="data.isIndex" :key="Math.random()" :width="selectionWidth" align="center" label="序号" |
| | | type="index"> |
| | | </el-table-column> |
| | | <el-table-column v-for="(a, ai) in tableHead" v-if="!data.headNoShow||(data.headNoShow&&data.headNoShow.length==0)||(data.headNoShow&&data.headNoShow.length>0&&!data.headNoShow.find(d=>d==a.label))" :key="ai+'bbbbb'" :isColumnWidth="isColumnWidth" :isShowZero="isShowZero" |
| | | :label="a.value" :min-width="columnMinWidth" :prop="a.label" :sortable="a.sort === 'custom' ? 'custom' : false" show-overflow-tooltip> |
| | | <el-table-column v-for="(a, ai) in tableHead" |
| | | v-if="!data.headNoShow || (data.headNoShow && data.headNoShow.length == 0) || (data.headNoShow && data.headNoShow.length > 0 && !data.headNoShow.find(d => d == a.label))" |
| | | :key="ai + 'bbbbb'" :isColumnWidth="isColumnWidth" :isShowZero="isShowZero" :label="a.value" |
| | | :min-width="columnMinWidth" :prop="a.label" :sortable="a.sort === 'custom' ? 'custom' : false" |
| | | show-overflow-tooltip> |
| | | <template slot-scope="scope"> |
| | | <div v-if="showType(a.label, data.tagField) != null"> |
| | | <template v-if="typeof(scope.row[a.label]) == 'object'"> |
| | |
| | | </template> |
| | | </template> |
| | | <template v-else> |
| | | <el-tag v-for="(b, bi) in data.tagField[a.label].select" v-show="b.value == scope.row[a.label]" :key="bi+'ddddd'" |
| | | :type="b.type" size="medium">{{b.label}}</el-tag> |
| | | <el-tag v-for="(b, bi) in data.tagField[a.label].select" v-show="b.value == scope.row[a.label]" |
| | | :key="bi + 'ddddd'" :type="b.type" size="medium">{{ b.label }}</el-tag> |
| | | </template> |
| | | </div> |
| | | <!-- 可操作行进行点击事件 --> |
| | | <span v-else-if="data.linkEvent&&showLink(a.label, data.linkEvent)" style="color:#409EFF;cursor: pointer;" |
| | | @click="handleLinkEvent(scope.row,data.linkEvent[a.label])">{{scope.row[a.label]}}</span> |
| | | <img v-else-if="showUpload(a.label)&&scope.row[a.label]" :src="javaApi+'/img/'+scope.row[a.label]" |
| | | alt="" style="width: 40px;height: 40px;margin-top: 10px;"> |
| | | <img v-else-if="showUpload(a.label) && scope.row[a.label]" :src="javaApi + '/img/' + scope.row[a.label]" alt="" |
| | | style="width: 40px;height: 40px;margin-top: 10px;"> |
| | | <span v-else :class="{red:getRedColor(a.label,scope.row)}" >{{scope.row[a.label]}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="data.do.length > 0" :width="getWidth()" align="center" fixed="right" label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button v-for="(a, ai) in data.do" :key="ai |
| | | +'qqqq'" :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false" |
| | | :type="a.type" class="handleBtn" |
| | | @click="main(scope.row, a)"> |
| | | + 'qqqq'" :disabled="a.disabled ? a.disabled(scope.row, scope.$index) : false" :type="a.type" |
| | | class="handleBtn" @click="main(scope.row, a)"> |
| | | <span v-if="a.type!='upload'">{{a.font}}</span> |
| | | <el-upload v-else ref='upload' |
| | | :accept='a.uploadConfig.accept' :action="javaApi+a.uploadConfig.url+'?id='+ (a.uploadConfig.uploadIdFun ? a.uploadConfig.uploadIdFun(scope.row) : scope.row.id)" |
| | | :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false" :headers="token" :on-error="onError" :on-success="handleSuccessUp" :show-file-list="false" |
| | | name="file" style="background: transparent;"> |
| | | <el-upload v-else ref='upload' :accept='a.uploadConfig.accept' |
| | | :action="javaApi + a.uploadConfig.url + '?id=' + (a.uploadConfig.uploadIdFun ? a.uploadConfig.uploadIdFun(scope.row) : scope.row.id)" |
| | | :disabled="a.disabled ? a.disabled(scope.row, scope.$index) : false" :headers="token" :on-error="onError" |
| | | :on-success="handleSuccessUp" :show-file-list="false" name="file" style="background: transparent;"> |
| | | <span>{{a.font}}</span> |
| | | </el-upload> |
| | | </el-button> |
| | |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog :close-on-click-modal="false" :visible.sync="upDia" |
| | | :width="data.row==1?'500px':540+data.row * 200 + 'px'" |
| | | append-to-body title="编辑"> |
| | | :width="data.row == 1 ? '500px' : 540 + data.row * 200 + 'px'" append-to-body title="编辑"> |
| | | <div class="body" style="max-height: 600px;overflow-y: auto;padding: 5px 10px 5px 0;"> |
| | | <div v-if="data.row > 1"> |
| | | <div v-for="(a, ai) in upHead" :key="ai+'ffff'" style="line-height: 50px;"> |
| | |
| | | <span v-if="showUpReq(a.label)" class="required-span">* </span>{{a.value}}: |
| | | </el-col> |
| | | <el-col :span="16/data.row"> |
| | | <el-input v-if="showType(a.label, data.selectField) == null&&!showUpload(a.label)&&!showCascader(a.label)" v-model="upData[a.label]" :disabled="isDisabled(a.label)" :placeholder="`请输入${a.value}`" |
| | | clearable |
| | | <el-input v-if="showType(a.label, data.selectField) == null && !showUpload(a.label) && !showCascader(a.label)" |
| | | v-model="upData[a.label]" :disabled="isDisabled(a.label)" :placeholder="`请输入${a.value}`" clearable |
| | | size="small"></el-input> |
| | | <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]" :allow-create="data.selectField[a.label].allowCreate" |
| | | :default-first-option="data.selectField[a.label].defaultFirstOption" |
| | | :disabled="isDisabled(a.label)" |
| | | :multiple="data.selectField[a.label].choose" clearable filterable |
| | | size="small" style="width: 100%;"> |
| | | <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]" |
| | | :allow-create="data.selectField[a.label].allowCreate" |
| | | :default-first-option="data.selectField[a.label].defaultFirstOption" :disabled="isDisabled(a.label)" |
| | | :multiple="data.selectField[a.label].choose" clearable filterable size="small" style="width: 100%;"> |
| | | <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi+'eeeee'" :label="b.label" |
| | | :value="b.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-upload v-if="showUpload(a.label)" ref='upload' |
| | | :accept='data.addUploadConfig.accept' :action="javaApi+data.addUploadConfig.url" :headers="token" :multiple="false" |
| | | :on-error="onError" :on-success="m=>handleSuccessUp(m, a.label)" :show-file-list="false" class="avatar-uploader" |
| | | name="file" |
| | | <el-upload v-if="showUpload(a.label)" ref='upload' :accept='data.addUploadConfig.accept' |
| | | :action="javaApi + data.addUploadConfig.url" :headers="token" :multiple="false" :on-error="onError" |
| | | :on-success="m => handleSuccessUp(m, a.label)" :show-file-list="false" class="avatar-uploader" name="file" |
| | | style="background: transparent;width: 80px;height: 80px;border: 1px solid #DCDFE6;border-radius: 6px;margin: 10px 0;"> |
| | | <img v-if="upData[a.label]" :src="javaApi+'/img/'+upData[a.label]" class="avatar" |
| | | style="width: 80px;height: 80px;border-radius: 6px;"> |
| | | <i v-else class="el-icon-plus avatar-uploader-icon"></i> |
| | | </el-upload> |
| | | <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree" :placeholder="`请选择${a.value}`" |
| | | :props="data.cascaderField.props" :show-all-levels="false" :value="upData[a.label]" |
| | | clearable filterable size="small" |
| | | style="width: 100%;" @change="m=>handleCascader(m,a.label)"></el-cascader> |
| | | <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree" |
| | | :placeholder="`请选择${a.value}`" :props="data.cascaderField.props" :show-all-levels="false" |
| | | :value="upData[a.label]" clearable filterable size="small" style="width: 100%;" |
| | | @change="m => handleCascader(m, a.label)"></el-cascader> |
| | | </el-col> |
| | | </div> |
| | | </div> |
| | |
| | | <span v-if="showUpReq(a.label)" class="required-span">* </span>{{a.value}}: |
| | | </el-col> |
| | | <el-col :offset="1" :span="16"> |
| | | <el-input v-if="showType(a.label, data.selectField) == null&&!showUpload(a.label)&&!showCascader(a.label)" v-model="upData[a.label]" :disabled="isDisabled(a.label)" :placeholder="`请输入${a.value}`" |
| | | clearable |
| | | <el-input v-if="showType(a.label, data.selectField) == null && !showUpload(a.label) && !showCascader(a.label)" |
| | | v-model="upData[a.label]" :disabled="isDisabled(a.label)" :placeholder="`请输入${a.value}`" clearable |
| | | size="small"></el-input> |
| | | <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]" :disabled="isDisabled(a.label)" |
| | | :multiple="data.selectField[a.label].choose" clearable filterable |
| | | <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]" |
| | | :disabled="isDisabled(a.label)" :multiple="data.selectField[a.label].choose" clearable filterable |
| | | size="small" style="width: 100%;"> |
| | | <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi+'fffff'" :label="b.label" |
| | | :value="b.value"></el-option> |
| | |
| | | style="width: 80px;height: 80px;border-radius: 6px;"> |
| | | <i v-else class="el-icon-plus avatar-uploader-icon"></i> |
| | | </el-upload> |
| | | <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree" :placeholder="`请选择${a.value}`" |
| | | :props="data.cascaderField.props" :show-all-levels="false" :value="upData[a.label]" clearable |
| | | filterable size="small" style="width: 100%;" @change="m=>handleCascader(m,a.label)"></el-cascader> |
| | | <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree" |
| | | :placeholder="`请选择${a.value}`" :props="data.cascaderField.props" :show-all-levels="false" |
| | | :value="upData[a.label]" clearable filterable size="small" style="width: 100%;" |
| | | @change="m => handleCascader(m, a.label)"></el-cascader> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :close-on-click-modal="false" :visible.sync="addDia" |
| | | :width="data.row==1?'500px':540+data.row * 200 + 'px'" |
| | | append-to-body title="新增"> |
| | | :width="data.row == 1 ? '500px' : 540 + data.row * 200 + 'px'" append-to-body title="新增"> |
| | | <div v-if="addDia" class="body" style="max-height: 550px;overflow-y: auto;padding: 5px 10px 5px 0;"> |
| | | <div v-if="data.row > 1"> |
| | | <div v-for="(a, ai) in upHead" :key="ai+'yyyyy'" style="line-height: 50px;"> |
| | |
| | | class="required-span">* |
| | | </span>{{a.value}}:</el-col> |
| | | <el-col :span="16/data.row"> |
| | | <el-input v-if="showType(a.label, data.selectField) == null&&!showUpload(a.label)&&!showCascader(a.label)" v-model="upData[a.label]" :placeholder="`请输入${a.value}`" clearable |
| | | size="small"></el-input> |
| | | <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]" :multiple="data.selectField[a.label].choose" |
| | | :placeholder="`请选择${a.value}`" |
| | | clearable filterable size="small" style="width: 100%;"> |
| | | <el-input v-if="showType(a.label, data.selectField) == null && !showUpload(a.label) && !showCascader(a.label)" |
| | | v-model="upData[a.label]" :placeholder="`请输入${a.value}`" clearable size="small"></el-input> |
| | | <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]" |
| | | :multiple="data.selectField[a.label].choose" :placeholder="`请选择${a.value}`" clearable filterable |
| | | size="small" style="width: 100%;"> |
| | | <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi+'hhhh'" :label="b.label" |
| | | :value="b.value"></el-option> |
| | | </el-select> |
| | | <el-upload v-if="showUpload(a.label)" ref='upload' |
| | | :accept='data.addUploadConfig.accept' :action="javaApi+data.addUploadConfig.url" :headers="token" :multiple="false" |
| | | :on-error="onError" :on-success="m=>handleSuccessUp(m, a.label)" :show-file-list="false" class="avatar-uploader" |
| | | name="file" |
| | | <el-upload v-if="showUpload(a.label)" ref='upload' :accept='data.addUploadConfig.accept' |
| | | :action="javaApi + data.addUploadConfig.url" :headers="token" :multiple="false" :on-error="onError" |
| | | :on-success="m => handleSuccessUp(m, a.label)" :show-file-list="false" class="avatar-uploader" name="file" |
| | | style="background: transparent;width: 80px;height: 80px;border: 1px solid #DCDFE6;border-radius: 6px;margin: 10px 0;"> |
| | | <img v-if="upData[a.label]" :src="javaApi+'/img/'+upData[a.label]" class="avatar" |
| | | style="width: 80px;height: 80px;border-radius: 6px;"> |
| | | <i v-else class="el-icon-plus avatar-uploader-icon"></i> |
| | | </el-upload> |
| | | <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree" :placeholder="`请选择${a.value}`" |
| | | :props="data.cascaderField.props" :show-all-levels="false" clearable filterable |
| | | size="small" style="width: 100%;" @change="m=>handleCascader(m,a.label)"></el-cascader> |
| | | <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree" |
| | | :placeholder="`请选择${a.value}`" :props="data.cascaderField.props" :show-all-levels="false" clearable |
| | | filterable size="small" style="width: 100%;" @change="m => handleCascader(m, a.label)"></el-cascader> |
| | | </el-col> |
| | | </div> |
| | | </div> |
| | |
| | | <el-col :span="6" style="text-align: right;"><span v-if="showAddReq(a.label)" class="required-span">* |
| | | </span>{{a.value}}:</el-col> |
| | | <el-col :offset="1" :span="16"> |
| | | <el-input v-if="showType(a.label, data.selectField) == null&&!showUpload(a.label)&&!showCascader(a.label)" v-model="upData[a.label]" :placeholder="`请输入${a.value}`" clearable |
| | | size="small"></el-input> |
| | | <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]" :multiple="data.selectField[a.label].choose" |
| | | :placeholder="`请选择${a.value}`" |
| | | clearable size="small" style="width: 100%;"> |
| | | <el-input v-if="showType(a.label, data.selectField) == null && !showUpload(a.label) && !showCascader(a.label)" |
| | | v-model="upData[a.label]" :placeholder="`请输入${a.value}`" clearable size="small"></el-input> |
| | | <el-select v-if="showType(a.label, data.selectField) != null" v-model="upData[a.label]" |
| | | :multiple="data.selectField[a.label].choose" :placeholder="`请选择${a.value}`" clearable size="small" |
| | | style="width: 100%;"> |
| | | <el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi+'mmmmmm'" :label="b.label" |
| | | :value="b.value"></el-option> |
| | | </el-select> |
| | | <el-upload v-if="showUpload(a.label)" ref='upload' |
| | | :accept='data.addUploadConfig.accept' :action="javaApi+data.addUploadConfig.url" :headers="token" :multiple="false" |
| | | :on-error="onError" :on-success="m=>handleSuccessUp(m, a.label)" :show-file-list="false" class="avatar-uploader" |
| | | name="file" |
| | | <el-upload v-if="showUpload(a.label)" ref='upload' :accept='data.addUploadConfig.accept' |
| | | :action="javaApi + data.addUploadConfig.url" :headers="token" :multiple="false" :on-error="onError" |
| | | :on-success="m => handleSuccessUp(m, a.label)" :show-file-list="false" class="avatar-uploader" name="file" |
| | | style="background: transparent;width: 80px;height: 80px;border: 1px solid #DCDFE6;border-radius: 6px;margin: 10px 0;"> |
| | | <img v-if="upData[a.label]" :src="javaApi+'/img/'+upData[a.label]" class="avatar" |
| | | style="width: 80px;height: 80px;border-radius: 6px;"> |
| | | <i v-else class="el-icon-plus avatar-uploader-icon"></i> |
| | | </el-upload> |
| | | <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree" :placeholder="`请选择${a.value}`" |
| | | :props="data.cascaderField.props" :show-all-levels="false" clearable filterable |
| | | size="small" style="width: 100%;" @change="m=>handleCascader(m,a.label)"></el-cascader> |
| | | <el-cascader v-if="showCascader(a.label)" :options="data.cascaderField[a.label].tree" |
| | | :placeholder="`请选择${a.value}`" :props="data.cascaderField.props" :show-all-levels="false" clearable |
| | | filterable size="small" style="width: 100%;" @change="m => handleCascader(m, a.label)"></el-cascader> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px"> |
| | | <div style="margin: 0 auto;"> |
| | | <el-upload ref="upload" :accept="data.accept===undefined?'.csv':data.accept" :action="javaApi + inputUrl" :auto-upload="false" :data="{param: data.uploadStr}" :file-list="fileList" |
| | | :headers="token" :limit="1" :on-change="beforeUpload" :on-error="onError" :on-success="onSuccess" |
| | | drag name="file"> |
| | | <el-upload ref="upload" :accept="data.accept === undefined ? '.csv' : data.accept" :action="javaApi + inputUrl" |
| | | :auto-upload="false" :data="{ param: data.uploadStr }" :file-list="fileList" :headers="token" :limit="1" |
| | | :on-change="beforeUpload" :on-error="onError" :on-success="onSuccess" drag name="file"> |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> |
| | | </el-upload> |
| | |
| | | item.state = state |
| | | auxiliaryWorkingHoursDays.push(item) |
| | | }) |
| | | this.$axios.post(this.$api.auxiliaryWorkingHoursDay.approve, {auxiliaryWorkingHoursDays: auxiliaryWorkingHoursDays |
| | | this.$axios.post(this.$api.auxiliaryWorkingHoursDay.approve, { |
| | | auxiliaryWorkingHoursDays: auxiliaryWorkingHoursDays |
| | | },{ |
| | | headers: { |
| | | 'Content-Type': 'application/json' |