123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- <template>
- <div id="technicalServiceList">
- <el-row>
- <el-col :span="24">
- <el-col :span="24" class="search">
- <!--<el-col :span="5">
- <span>筛选条件:</span>
- <el-select v-model="search.publish_state" placeholder="请选择发布状态">
- <el-option label="未发布" value="0"></el-option>
- <el-option label="已发布" value="1"></el-option>
- </el-select>
- </el-col>-->
- <el-col :span="4">
- <span>输入条件:</span>
- <el-input v-model="search.title" :placeholder="placeholder" class="input"></el-input>
- </el-col>
- <!--<el-col :span="7">
- <span>时间选择:</span>
- <el-date-picker v-model="search.date" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
- </el-col>-->
- <el-col :span="8">
- <el-button class="btnSearch" @click="toQuery">查询</el-button>
- <el-button class="btnSearch qing" @click="toClear">清空</el-button>
- </el-col>
- </el-col>
- <el-col :span="24">
- <el-table
- ref="tableData"
- :data="tableData"
- tooltip-effect="dark"
- :default-sort="{ prop: 'date', order: 'descending' }"
- style="width: 100%"
- @selection-change="handleSelectionChange"
- >
- <!--<el-table-column type="selection" align="center"> </el-table-column>-->
- <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
- <el-table-column property="title" label="名称" align="center"> </el-table-column>
- <!--<el-table-column property="service" label="服务" align="center"> </el-table-column>-->
- <el-table-column label="图片" align="center">
- <template slot-scope="scope">
- <span> <el-image v-if="scope.row.image" :src="scope.row.image" style="height:20px;width:20px "
- @click="showImage(scope.row.image)"></el-image></span>
- </template>
- </el-table-column>
- <el-table-column property="contact" label="联系人" align="center"> </el-table-column>
- <el-table-column property="phone" label="联系电话" align="center"> </el-table-column>
- <el-table-column property="email" label="电子邮箱" align="center"> </el-table-column>
- <el-table-column label="操作" align="center" width="300px">
- <template slot-scope="scope">
- <el-button size="mini" type="text" class="edit" icon="el-icon-edit"
- @click="$router.push({ path: '/technicalService/detail', query: { id: scope.row.id } })"></el-button>
- <el-button size="mini" type="text" class="delete" icon="el-icon-delete"
- @click.prevent="deleteRow(scope.row.id)"></el-button>
- </template>
- </el-table-column>
- </el-table>
- <el-row>
- <el-pagination
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :current-page.sync="currentPage"
- :page-sizes="[10, 20, 30, 40]"
- :page-size.sync="limit"
- background
- layout="total, sizes, prev, pager, next, jumper"
- :total="total"
- >
- </el-pagination>
- </el-row>
- </el-col>
- </el-col>
- </el-row>
- <el-dialog
- :visible.sync="dialogVisible"
- width="30%"
- >
- <el-image :src="elImage" style="height:100%;width:100% "></el-image>
- </el-dialog>
- </div>
- </template>
- <script>
- export default {
- name: 'technicalServiceList',
- props: {
- tableData: null,
- total: null,
- type: null,
- },
- components: {},
- data: () => ({
- placeholder: '请输入名称',
- search: {},
- currentPage: 1,
- limit: 10,
- dialogVisible: false,
- elImage: '',
- }),
- created() {
- },
- computed: {
- },
- methods: {
- handleSelectionChange(val) {
- this.multipleSelection = val;
- },
- deleteRow(id) {
- this.$set(this, `currentPage`, 1);
- this.$emit('deleteRow', {id: id, skip: 0, limit: this.limit,type:this.type, ...this.search});
- },
- handleSizeChange(val) {
- this.$set(this, `currentPage`, 1);
- this.$emit('select', {skip: 0, limit: val,type:this.type, ...this.search});
- },
- handleCurrentChange(val) {
- this.$emit('select', {skip: (val - 1) * this.limit, limit: this.limit,type:this.type, ...this.search});
- },
- toQuery() {
- this.$set(this, `currentPage`, 1);
- this.$emit('select', {skip: 0, limit: this.limit,type:this.type, ...this.search});
- },
- toClear() {
- let keys = Object.keys(this.search);
- for (const key of keys) {
- this.$set(this.search, `${key}`, '');
- }
- },
- showImage(image) {
- if(image){
- this.$set(this, `elImage`, image);
- this.$set(this, `dialogVisible`, true);
- }else{
- this.$set(this, `dialogVisible`, false);
- }
- },
- getDate(val) {
- if(val){
- return this.format(new Date(Number(val)),'yyyy年MM月dd');
- }
- return '';
- },
- format(date,formatStr){
- formatStr=formatStr.replace(/yyyy|YYYY/,date.getFullYear());
- formatStr=formatStr.replace(/MM/,(date.getMonth()+1)>9?(date.getMonth()+1).toString():'0' + (date.getMonth()+1));
- formatStr=formatStr.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());
- return formatStr;
- },
- publish(row){
- if(row.publish_state === '1'){
- this.$message.error('已发布');
- return ;
- }
- this.$emit('publish', {row:row,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
- },
- },
- };
- </script>
- <style lang="less" scoped>
- /deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
- background-color: red;
- border-color: red;
- }
- /deep/ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
- background-color: red;
- border-color: red;
- }
- /deep/ .el-table th {
- background-color: #f5f6fa;
- padding: 8px 0;
- }
- /deep/ .el-table td {
- padding: 11px 0;
- }
- .other {
- color: #f36302;
- }
- .view {
- color: #f36302;
- }
- .edit {
- color: #2ccc02;
- }
- .delete {
- color: #e9021d;
- }
- /deep/ .el-pagination {
- padding: 26px 20px;
- }
- /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
- background-color: red;
- }
- .input {
- width: 150px;
- }
- /deep/ .el-input__inner {
- height: 35px;
- line-height: 35px;
- }
- .btnSearch {
- width: 80px;
- height: 34px;
- background: rgba(233, 2, 29, 1);
- border-radius: 4px;
- padding: 0;
- color: #fff;
- }
- .qing {
- background: rgba(185, 185, 185, 1);
- }
- .top {
- height: 50px;
- margin: 0 0 10px 0;
- }
- .search {
- background: #ffffff;
- width: 97%;
- height: 35px;
- margin: 20px;
- margin-left: 0px;
- }
- .list {
- padding: 0 20px;
- }
- </style>
|