| | |
| | | <template> |
| | | <div class="app-container" style="opacity: 1;"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> |
| | | <div class="app-container" style="opacity: 1;"> |
| | | <h2>æ
游ç»å表</h2> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> |
| | | |
| | | <el-form-item label="æ¶é´" > |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px;" |
| | | value-format="yyyy-MM-dd HH-MM" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ»å¤©æ°" prop="usePeople" > |
| | | <el-input |
| | | v-model="queryParams.usePeople" |
| | | placeholder="请è¾å
¥ä½¿ç¨äºº" |
| | | clearable |
| | | style="width: 240px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶é´" > |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px;" |
| | | value-format="yyyy-MM-dd HH-MM" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ»å¤©æ°" prop="usePeople" > |
| | | <el-input |
| | | v-model="queryParams.usePeople" |
| | | placeholder="请è¾å
¥ä½¿ç¨äºº" |
| | | clearable |
| | | style="width: 240px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button size="mini" @click="handleQuery" style=" width: 65px; height: 32px;background: #FFDDE3;border-radius:6px 6px 6px 6px;opacity:1;">æç´¢</el-button> |
| | | <el-button size="mini" @click="resetQuery" style=" width: 65px;height: 32px; background: #FFDDE3; border-radius:6px 6px 6px 6px;opacity: 1;">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form-item> |
| | | <el-button size="mini" @click="handleQuery" style=" width: 65px; height: 32px;background: #FFDDE3;border-radius:6px 6px 6px 6px;opacity:1;">æç´¢</el-button> |
| | | <el-button size="mini" @click="resetQuery" style=" width: 65px;height: 32px; background: #FFDDE3; border-radius:6px 6px 6px 6px;opacity: 1;">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:role:add']" |
| | | >æ°å¢</el-button> |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:role:remove']" |
| | | >å é¤</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['family:note:export']" |
| | | >导åº</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExportTemplate" |
| | | v-hasPermi="['family:note:export']" |
| | | >导å
¥æ¨¡æ¿ä¸è½½</el-button> |
| | | </el-col> |
| | | <el-col :span="1.2"> |
| | | <el-upload |
| | | action="" |
| | | class="upload-demo" |
| | | :show-file-list="false" |
| | | :http-request="handleEnport" |
| | | > |
| | | <el-button size="mini" type="primary" |
| | | plain |
| | | icon="el-icon-plus" >导å
¥</el-button> |
| | | |
| | | </el-upload> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="travelBase" @selection-change="handleSelectionChange" @row-click="handleCheck" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="åºå·" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="120"/> |
| | | |
| | | <el-table-column label="æ¶é´" prop="happenTime" sortable width="100" align="center"> |
| | | <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: 'ââââ'}}</template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="å°ç¹" prop="address" sortable width="100" /> |
| | | <el-table-column label="人ç©" prop="people" sortable width="100" /> |
| | | |
| | | <el-table-column label="æ é¢" prop="title" sortable width="100" /> |
| | | <el-table-column label="æ
æ" prop="travelPeriod" sortable width="100" /> |
| | | <el-table-column label="æè¯æ
游" prop="certificate" sortable width="100" /> |
| | | <el-table-column label="è´¹ç¨" prop="totalPrice" sortable width="100" /> |
| | | <el-table-column label="å
¬è´¹/èªè´¹" prop="self" sortable width="100" > |
| | | <template slot-scope="scope">{{scope.row.self==0?'å
¬è´¹':'èªè´¹'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="çµåæä»¶" prop="url" width="160" > |
| | | <template slot-scope="scope" > |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | src="../../assets/images/deviceLis.png" |
| | | alt="" |
| | | style="width: 35px; height: 35px;" |
| | | fit="cover" |
| | | v-if="scope.row.url !== ','" |
| | | > |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | src="../../assets/images/deviceA.png" |
| | | alt="" |
| | | style="width: 35px; height: 35px;" |
| | | fit="cover" |
| | | v-if="scope.row.url === ','" |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="夿³¨" prop="remark" sortable width="100" /> |
| | | |
| | | |
| | | <el-table-column label="æä½" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope" v-if="scope.row.roleId !== 1"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:role:add']" |
| | | >æ°å¢</el-button> |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['familymodel:economy:info']" |
| | | >ä¿®æ¹</el-button> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:role:remove']" |
| | | >å é¤</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['family:note:export']" |
| | | >导åº</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExportTemplate" |
| | | v-hasPermi="['family:note:export']" |
| | | >导å
¥æ¨¡æ¿ä¸è½½</el-button> |
| | | </el-col> |
| | | <el-col :span="1.2"> |
| | | <el-upload |
| | | action="" |
| | | class="upload-demo" |
| | | :show-file-list="false" |
| | | :http-request="handleEnport" |
| | | > |
| | | <el-button size="mini" type="primary" |
| | | plain |
| | | icon="el-icon-plus" >导å
¥</el-button> |
| | | |
| | | </el-upload> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | <!-- åºå·ãåºé/å°è´¦ãæ¶é´ãæ¶å
¥/æ¯åºãç¨éã使ç¨äººãç°é/èªå¨æ£åãä½é¢ãçµåæä»¶ã夿³¨ æä½--> |
| | | <!-- è¿éæä¸ªfamilyListæ°ç» æ¯å¨data()ä¸å®ä¹ç --> |
| | | <el-table v-loading="loading" :data="travelBase" @selection-change="handleSelectionChange" @row-click="handleCheck" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <el-dialog :title="title" :visible.sync="openDataScope" width="1000px" append-to-body> |
| | | |
| | | <el-table v-loading="loading" :data="travelpriceList" @selection-change="handleSelectionChange" @row-click="handleCheck" :row-class-name="tableRowClassName" > |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | |
| | | <el-table-column label="åºå·" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="120"/> |
| | | |
| | | <el-table-column label="æ¶é´" prop="address" sortable width="100" /> |
| | | |
| | | <el-table-column label="å°ç¹" prop="address" sortable width="100" /> |
| | | <el-table-column label="人ç©" prop="people" sortable width="100" /> |
| | | |
| | | <el-table-column label="æ é¢" prop="title" sortable width="100" /> |
| | | <el-table-column label="æ
æ" prop="travel_period" sortable width="100" /> |
| | | <el-table-column label="æè¯æ
游" prop="certificate" sortable width="100" /> |
| | | <el-table-column label="è´¹ç¨" prop="total_price" sortable width="100" /> |
| | | <el-table-column label="å
¬è´¹/èªè´¹" prop="self" sortable width="100" /> |
| | | <el-table-column label="çµåæä»¶" prop="remark" sortable width="100" /> |
| | | <el-table-column label="夿³¨" prop="remark" sortable width="100" /> |
| | | |
| | | |
| | | <el-table-column label="æ¶é´" prop="happenTime" sortable width="100" align="center"> |
| | | <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: 'ââââ'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="å
容" prop="content" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="æ»éé¢" prop="totalcost" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="é¤è´¹" prop="eat" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="ä½å®¿" prop="stay" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="交é" prop="traffic" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="é¨ç¥¨" prop="entrance" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="è´ç©" prop="shopping" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="æä½" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope" v-if="scope.row.roleId !== 1"> |
| | | <el-button |
| | |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['familymodel:economy:info']" |
| | | v-hasPermi="['familymodel:property:info']" |
| | | >ä¿®æ¹</el-button> |
| | | <el-button |
| | | size="mini" |
| | |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:role:remove']" |
| | | >å é¤</el-button> |
| | | <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['familymodel:economy:info']"> |
| | | <el-button size="mini" type="text" icon="el-icon-d-arrow-right" @click="handleCheck(scope.row)">æ¥ç详æ
</el-button> |
| | | </el-dropdown> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <el-dialog :title="title" :visible.sync="openDataScope" width="1000px" append-to-body> |
| | | |
| | | <el-table v-loading="loading" :data="travelpriceList" @selection-change="handleSelectionChange" @row-click="handleCheck" :row-class-name="tableRowClassName" > |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | |
| | | <el-table-column label="åºå·" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="120"/> |
| | | <el-table-column label="æ¶é´" prop="happenTime" sortable width="100" align="center"> |
| | | <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: 'ââââ'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="å
容" prop="content" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="æ»éé¢" prop="totalcost" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="é¤è´¹" prop="eat" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="ä½å®¿" prop="stay" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="交é" prop="traffic" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="é¨ç¥¨" prop="entrance" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="è´ç©" prop="shopping" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="æä½" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope" v-if="scope.row.roleId !== 1"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['familymodel:property:info']" |
| | | >ä¿®æ¹</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:role:remove']" |
| | | >å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | |
| | | /> |
| | | |
| | | |
| | | </el-dialog> |
| | | |
| | | <pagination |
| | | v-show="total>0" |
| | |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | style="background: #FEF7FC;" |
| | | |
| | | /> |
| | | |
| | | <!-- æ·»å æä¿®æ¹èµäº§ä¿¡æ¯é
ç½®å¯¹è¯æ¡ --> |
| | | |
| | | <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> |
| | | <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px"> |
| | | <el-form-item label="å°è´¦" prop="type"> |
| | | <el-input v-model="formDat.type" placeholder="请è¾å
¥å
容" clearable :style="{width: '100%'}" ></el-input> |
| | | </el-form-item> |
| | | </el-dialog> |
| | | |
| | | <el-form-item label="æ¶é´" prop="happenTime"> |
| | | <el-date-picker |
| | | v-model='formDat.happenTime' |
| | | type='date' |
| | | placeholder='éæ©æ¥æ' |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶å
¥/æ¯åº" prop="price"> |
| | | <el-select v-model="formDat.price" placeholder="è¯·éæ©æ¶å
¥/æ¯åº" clearable :style="{width: '100%'}" > |
| | | <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="éé¢" prop="balance"> |
| | | <el-input v-model="formDat.balance" placeholder="请è¾å
¥ä½é¢" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¨é" prop="useFor"> |
| | | <el-input v-model="formDat.useFor" placeholder="请è¾å
¥ç¨é" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="使ç¨äºº" prop="usePeople"> |
| | | <el-input v-model="formDat.usePeople" placeholder="请è¾å
¥ä½¿ç¨äºº" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯ä»æ¹å¼" prop="kind"> |
| | | <el-input v-model="formDat.kind" placeholder="请è¾å
¥æ¯ä»æ¹å¼" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="formDat.remark" placeholder="请è¾å
¥å¤æ³¨" clearable :style="{width: '100%'}" ></el-input> |
| | | </el-form-item> |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | style="background: #FEF7FC;" |
| | | /> |
| | | |
| | | <h4 class="form-header">ç¸å
³å¾ç </h4> |
| | | <el-upload |
| | | action="#" |
| | | list-type="picture-card" |
| | | multiple |
| | | :http-request="requestUpload" |
| | | :file-list="fileList" |
| | | <!-- æ·»å æä¿®æ¹èµäº§ä¿¡æ¯é
ç½®å¯¹è¯æ¡ --> |
| | | |
| | | <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> |
| | | <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px"> |
| | | <el-form-item label="å°è´¦" prop="type"> |
| | | <el-input v-model="formDat.type" placeholder="请è¾å
¥å
容" clearable :style="{width: '100%'}" ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¶é´" prop="happenTime"> |
| | | <el-date-picker |
| | | v-model='formDat.happenTime' |
| | | type='date' |
| | | placeholder='éæ©æ¥æ' |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶å
¥/æ¯åº" prop="price"> |
| | | <el-select v-model="formDat.price" placeholder="è¯·éæ©æ¶å
¥/æ¯åº" clearable :style="{width: '100%'}" > |
| | | <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="éé¢" prop="balance"> |
| | | <el-input v-model="formDat.balance" placeholder="请è¾å
¥ä½é¢" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¨é" prop="useFor"> |
| | | <el-input v-model="formDat.useFor" placeholder="请è¾å
¥ç¨é" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="使ç¨äºº" prop="usePeople"> |
| | | <el-input v-model="formDat.usePeople" placeholder="请è¾å
¥ä½¿ç¨äºº" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯ä»æ¹å¼" prop="kind"> |
| | | <el-input v-model="formDat.kind" placeholder="请è¾å
¥æ¯ä»æ¹å¼" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="formDat.remark" placeholder="请è¾å
¥å¤æ³¨" clearable :style="{width: '100%'}" ></el-input> |
| | | </el-form-item> |
| | | |
| | | <h4 class="form-header">ç¸å
³å¾ç </h4> |
| | | <el-upload |
| | | action="#" |
| | | list-type="picture-card" |
| | | multiple |
| | | :http-request="requestUpload" |
| | | :file-list="fileList" |
| | | > |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | :src="file.url" |
| | | alt="" |
| | | style="width: 126px; height: 126px" |
| | | fit="cover" |
| | | :preview-src-list="[file.url]" |
| | | > |
| | | <span class="el-upload-list__item-actions"> |
| | | <span |
| | | class="el-upload-list__item-preview" |
| | | @click="handlePictureCardPreview(file)" |
| | | > |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | :src="file.url" |
| | | alt="" |
| | | style="width: 126px; height: 126px" |
| | | fit="cover" |
| | | :preview-src-list="[file.url]" |
| | | > |
| | | <span class="el-upload-list__item-actions"> |
| | | <span |
| | | class="el-upload-list__item-preview" |
| | | @click="handlePictureCardPreview(file)" |
| | | > |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | |
| | | <span |
| | | v-if="!disabled" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemove(file)" |
| | | > |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | |
| | | |
| | | </div> |
| | | </el-upload> |
| | | <h4 class="form-header">å
¶ä»éä»¶ </h4> |
| | | <el-upload |
| | | action="" |
| | | :file-list="fileListOther" |
| | | class="upload-demo" |
| | | multiple |
| | | |
| | | :on-remove="handleRemove" |
| | | :http-request="requestUpload" |
| | | :show-file-list="true" |
| | | <span |
| | | v-if="!disabled" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemove(file)" |
| | | > |
| | | <el-button type="primary">ä¸ä¼ </el-button> |
| | | <template #tip> |
| | | <div class="el-upload__tip"> |
| | | </div> |
| | | </template> |
| | | </el-upload> |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | </span> |
| | | |
| | | </el-form> |
| | | <h4 class="form-header"> </h4> |
| | | |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitDataScope">ç¡® å®</el-button> |
| | | <el-button @click="cancelData">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </el-upload> |
| | | <h4 class="form-header">å
¶ä»éä»¶ </h4> |
| | | <el-upload |
| | | action="" |
| | | :file-list="fileListOther" |
| | | class="upload-demo" |
| | | multiple |
| | | |
| | | <!-- åé
è§è²æ°æ®æéå¯¹è¯æ¡ --> |
| | | <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body> |
| | | :on-remove="handleRemove" |
| | | :http-request="requestUpload" |
| | | :show-file-list="true" |
| | | > |
| | | <el-button type="primary">ä¸ä¼ </el-button> |
| | | <template #tip> |
| | | <div class="el-upload__tip"> |
| | | </div> |
| | | </template> |
| | | </el-upload> |
| | | |
| | | </el-dialog> |
| | | </el-form> |
| | | <h4 class="form-header"> </h4> |
| | | |
| | | </div> |
| | | </template> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitDataScope">ç¡® å®</el-button> |
| | | <el-button @click="cancelData">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <script> |
| | | import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role"; |
| | | import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu"; |
| | | <!-- åé
è§è²æ°æ®æéå¯¹è¯æ¡ --> |
| | | <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body> |
| | | |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role"; |
| | | import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu"; |
| | | |
| | | |
| | | |
| | | //å¨system/note/index.jsä¸å¯¼å
¥æ¥å£å½æ° --æ¥å¥½äº |
| | | import {listTravelPrice,listTravelBase,enload,getTravelPriceInfo,delTravelPrice, addTravelPrice, uploadPic} from "@/api/travel/index"; |
| | | //å¨system/note/index.jsä¸å¯¼å
¥æ¥å£å½æ° --æ¥å¥½äº |
| | | import {listTravelPrice,listTravelBase,enload,getTravelPriceInfo,delTravelPrice, addTravelPrice, uploadPic} from "@/api/travel/index"; |
| | | |
| | | export default { |
| | | name: "Role", |
| | | dicts: ['sys_normal_disable'], |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | disabled: false, |
| | | loading: true, |
| | | formData:[], |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // 家大äºè®°è¡¨æ ¼æ°æ® |
| | | travelBase: [], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå±ï¼æ°æ®æéï¼ |
| | | openDataScope: false, |
| | | menuExpand: false, |
| | | menuNodeAll: false, |
| | | deptExpand: true, |
| | | deptNodeAll: false, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // æ°æ®èå´é项 |
| | | fot:[".jpg",".jif"], |
| | | fileList:[ |
| | | ], |
| | | fileListOther:[ |
| | | export default { |
| | | name: "Role", |
| | | dicts: ['sys_normal_disable'], |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | disabled: false, |
| | | loading: true, |
| | | formData:[], |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // 家大äºè®°è¡¨æ ¼æ°æ® |
| | | travelBase: [], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå±ï¼æ°æ®æéï¼ |
| | | openDataScope: false, |
| | | menuExpand: false, |
| | | menuNodeAll: false, |
| | | deptExpand: true, |
| | | deptNodeAll: false, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // æ°æ®èå´é项 |
| | | fot:[".jpg",".jif"], |
| | | fileList:[ |
| | | ], |
| | | fileListOther:[ |
| | | |
| | | ], |
| | | dsb:true, |
| | | btn:false, |
| | | formDat: { |
| | | type: undefined, |
| | | createTime: undefined, |
| | | useFor: undefined, |
| | | usePeople: undefined, |
| | | kind:undefined, |
| | | remark: undefined, |
| | | url: undefined, |
| | | }, |
| | | // èåå表 |
| | | menuOptions: [], |
| | | // é¨é¨å表 |
| | | deptOptions: [], |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | type:undefined, |
| | | useFor:undefined, |
| | | usePeople:undefined, |
| | | createTime:undefined, |
| | | fid:undefined |
| | | }, |
| | | // 表ååæ° |
| | | form: {}, |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label" |
| | | }, |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | usePeople: [{ |
| | | required: true, |
| | | message: '请è¾å
¥ä½¿ç¨äºº', |
| | | trigger: 'blur' |
| | | }], |
| | | |
| | | useFor: [{ |
| | | required: true, |
| | | message: '请è¾å
¥ç¨é', |
| | | trigger: 'blur' |
| | | }], |
| | | type: [{ |
| | | required: true, |
| | | message: '请è¾å
¥å°è´¦å
容', |
| | | trigger: 'blur' |
| | | }], |
| | | balance: [{ |
| | | required: true, |
| | | message: '请è¾å
¥éé¢', |
| | | trigger: 'blur' |
| | | }], |
| | | kind: [{ |
| | | // required: true, |
| | | message: '请è¾å
¥æ¯ä»æ¹å¼', |
| | | trigger: 'blur' |
| | | }], |
| | | createTime: [{ |
| | | required: true, |
| | | message: 'è¯·éæ©æ¥æéæ©', |
| | | trigger: 'change' |
| | | }], |
| | | price: [{ |
| | | required: true, |
| | | message: 'è¯·éæ©äºé¡¹å
容', |
| | | trigger: 'blur' |
| | | }], |
| | | }, |
| | | typeOptions: [ |
| | | { |
| | | value: 'æ¶å
¥', |
| | | label: 'æ¶å
¥', |
| | | }, |
| | | { |
| | | value: 'æ¯åº', |
| | | label: 'æ¯åº', |
| | | }], |
| | | typeOptions1: [ |
| | | { |
| | | value: '0', |
| | | label: 'ç°é', |
| | | }, |
| | | { |
| | | value: '1', |
| | | label: 'èªå¨æ£å', |
| | | } |
| | | ], |
| | | }; |
| | | }, |
| | | created() { |
| | | const id = this.$route.params && this.$route.params.id; |
| | | this.getList(id); |
| | | |
| | | }, |
| | | methods: { |
| | | |
| | | //åºé/å°è´¦çéæ© |
| | | getSrc1(type) { |
| | | if (type === 0) { |
| | | return 'åºé' |
| | | }else { |
| | | return 'å°è´¦' |
| | | } |
| | | ], |
| | | dsb:true, |
| | | btn:false, |
| | | formDat: { |
| | | type: undefined, |
| | | createTime: undefined, |
| | | useFor: undefined, |
| | | usePeople: undefined, |
| | | kind:undefined, |
| | | remark: undefined, |
| | | url: undefined, |
| | | }, |
| | | |
| | | getSrc2(kind) { |
| | | if (kind == 0) { |
| | | return 'ç°é' |
| | | }else { |
| | | return 'èªå¨æ£å' |
| | | } |
| | | // èåå表 |
| | | menuOptions: [], |
| | | // é¨é¨å表 |
| | | deptOptions: [], |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | type:undefined, |
| | | useFor:undefined, |
| | | usePeople:undefined, |
| | | createTime:undefined, |
| | | fid:undefined |
| | | }, |
| | | |
| | | // åæ¶æé® |
| | | cancelData() { |
| | | this.open = false; |
| | | this.reset(); |
| | | // 表ååæ° |
| | | form: {}, |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label" |
| | | }, |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | usePeople: [{ |
| | | required: true, |
| | | message: '请è¾å
¥ä½¿ç¨äºº', |
| | | trigger: 'blur' |
| | | }], |
| | | |
| | | //éè¡åè² |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if (rowIndex % 2 == 0) { |
| | | return "statistics-warning-row1"; |
| | | } else { |
| | | return "statistics-warning-row"; |
| | | } |
| | | useFor: [{ |
| | | required: true, |
| | | message: '请è¾å
¥ç¨é', |
| | | trigger: 'blur' |
| | | }], |
| | | type: [{ |
| | | required: true, |
| | | message: '请è¾å
¥å°è´¦å
容', |
| | | trigger: 'blur' |
| | | }], |
| | | balance: [{ |
| | | required: true, |
| | | message: '请è¾å
¥éé¢', |
| | | trigger: 'blur' |
| | | }], |
| | | kind: [{ |
| | | // required: true, |
| | | message: '请è¾å
¥æ¯ä»æ¹å¼', |
| | | trigger: 'blur' |
| | | }], |
| | | createTime: [{ |
| | | required: true, |
| | | message: 'è¯·éæ©æ¥æéæ©', |
| | | trigger: 'change' |
| | | }], |
| | | price: [{ |
| | | required: true, |
| | | message: 'è¯·éæ©äºé¡¹å
容', |
| | | trigger: 'blur' |
| | | }], |
| | | }, |
| | | |
| | | /** æ¥è¯¢è§è²å表 */ |
| | | //å表æ¾ç¤ºå®¶å¤§äºè®° |
| | | |
| | | |
| | | getList(fid) { |
| | | this.loading = true; |
| | | this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0] |
| | | this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1] |
| | | this.queryParams.fid = fid |
| | | console.log(this.queryParams) |
| | | // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => { |
| | | listTravelBase(this.queryParams).then(response => { |
| | | // alert(123) |
| | | // console.log(response.data) |
| | | this.travelBase = response.data.data; |
| | | console.log(this.travelBase) |
| | | this.total = response.data.total; |
| | | this.loading = false; |
| | | } |
| | | ); |
| | | }, |
| | | handleRemove(file) { |
| | | for(let i = 0; i < this.fileListOther.length; i++) |
| | | typeOptions: [ |
| | | { |
| | | if(this.fileListOther[i].url==file.url) |
| | | this.$delete(this.fileListOther,i); |
| | | value: 'æ¶å
¥', |
| | | label: 'æ¶å
¥', |
| | | }, |
| | | { |
| | | value: 'æ¯åº', |
| | | label: 'æ¯åº', |
| | | }], |
| | | typeOptions1: [ |
| | | { |
| | | value: '0', |
| | | label: 'ç°é', |
| | | }, |
| | | { |
| | | value: '1', |
| | | label: 'èªå¨æ£å', |
| | | } |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | created() { |
| | | const id = this.$route.params && this.$route.params.id; |
| | | this.getList(id); |
| | | |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | getRowId(row) |
| | | { |
| | | return row.id |
| | | }, |
| | | // åæ¶æé®ï¼æ°æ®æéï¼ |
| | | cancelDataScope() { |
| | | this.openDataScope = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | if (this.$refs.menu != undefined) { |
| | | this.$refs.menu.setCheckedKeys([]); |
| | | }, |
| | | methods: { |
| | | |
| | | //åºé/å°è´¦çéæ© |
| | | getSrc1(type) { |
| | | if (type === 0) { |
| | | return 'åºé' |
| | | }else { |
| | | return 'å°è´¦' |
| | | } |
| | | }, |
| | | |
| | | getSrc2(kind) { |
| | | if (kind == 0) { |
| | | return 'ç°é' |
| | | }else { |
| | | return 'èªå¨æ£å' |
| | | } |
| | | }, |
| | | |
| | | // åæ¶æé® |
| | | cancelData() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | |
| | | //éè¡åè² |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if (rowIndex % 2 == 0) { |
| | | return "statistics-warning-row1"; |
| | | } else { |
| | | return "statistics-warning-row"; |
| | | } |
| | | }, |
| | | |
| | | /** æ¥è¯¢è§è²å表 */ |
| | | //å表æ¾ç¤ºå®¶å¤§äºè®° |
| | | |
| | | |
| | | getList(fid) { |
| | | this.loading = true; |
| | | this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0] |
| | | this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1] |
| | | this.queryParams.fid = fid |
| | | console.log(this.queryParams) |
| | | // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => { |
| | | listTravelBase(this.queryParams).then(response => { |
| | | // alert(123) |
| | | // console.log(response.data) |
| | | this.travelBase = response.data.data; |
| | | console.log(this.travelBase) |
| | | this.total = response.data.total; |
| | | this.loading = false; |
| | | } |
| | | this.menuExpand = false, |
| | | this.menuNodeAll = false, |
| | | this.deptExpand = true, |
| | | this.deptNodeAll = false, |
| | | this.form = { |
| | | roleId: undefined, |
| | | roleName: undefined, |
| | | roleKey: undefined, |
| | | roleSort: 0, |
| | | status: "0", |
| | | menuIds: [], |
| | | deptIds: [], |
| | | menuCheckStrictly: true, |
| | | deptCheckStrictly: true, |
| | | remark: undefined |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | ); |
| | | }, |
| | | handleRemove(file) { |
| | | for(let i = 0; i < this.fileListOther.length; i++) |
| | | { |
| | | if(this.fileListOther[i].url==file.url) |
| | | this.$delete(this.fileListOther,i); |
| | | } |
| | | }, |
| | | |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | getRowId(row) |
| | | { |
| | | return row.id |
| | | }, |
| | | // åæ¶æé®ï¼æ°æ®æéï¼ |
| | | cancelDataScope() { |
| | | this.openDataScope = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | if (this.$refs.menu != undefined) { |
| | | this.$refs.menu.setCheckedKeys([]); |
| | | } |
| | | this.menuExpand = false, |
| | | this.menuNodeAll = false, |
| | | this.deptExpand = true, |
| | | this.deptNodeAll = false, |
| | | this.form = { |
| | | roleId: undefined, |
| | | roleName: undefined, |
| | | roleKey: undefined, |
| | | roleSort: 0, |
| | | status: "0", |
| | | menuIds: [], |
| | | deptIds: [], |
| | | menuCheckStrictly: true, |
| | | deptCheckStrictly: true, |
| | | remark: undefined |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | console.log(this.ids) |
| | | this.single = selection.length!=1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "æ·»å å®¶åºæ¶æ¯å°è´¦"; |
| | | }, |
| | | |
| | | |
| | | /** æ¥ç详ç»ä¿¡æ¯ */ |
| | | handleCheck(row){ |
| | | const id = row.id; |
| | | this.$router.push("/self/travel/travelInfo/" + id); |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | const id = row.id; |
| | | let jd = true |
| | | |
| | | this.$router.push({ |
| | | path:"/self/travel/travelInfo/" + id, |
| | | query:{ |
| | | detail:jd |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | |
| | | handlePictureCardPreview(file) { |
| | | this.dialogImageUrl = file.url; |
| | | this.dialogVisible = true; |
| | | }, |
| | | /** æäº¤æé®ï¼æ°æ®æéï¼ */ |
| | | submitDataScope: function() { |
| | | |
| | | let ul = this.fileList.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | let uls = this.fileListOther.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | this.formDat.url = ul+","+uls |
| | | this.$refs["elForm"].validate(valid => { |
| | | if (valid) { |
| | | |
| | | addEconomy(this.formDat).then(response => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | requestUpload(params) |
| | | { |
| | | var file = params.file; |
| | | var formData = new FormData(); |
| | | formData.append('uploadFile', file); |
| | | let _this = this |
| | | |
| | | uploadPic(formData).then(response => { |
| | | let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length) |
| | | |
| | | if(_this.fot.includes(pth) === true) |
| | | { |
| | | _this.fileList.push({name:response.data.fileName, "url":response.data.url}) |
| | | |
| | | } |
| | | |
| | | else{ |
| | | _this.fileListOther.push({name:response.data.fileName, url:response.data.url}) |
| | | |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const Ids = row.id || this.ids; |
| | | this.$modal.confirm('æ¯å¦ç¡®è®¤å é¤åºå·ä¸º"' + Ids + '"çæ°æ®é¡¹ï¼').then(function() { |
| | | return delEconomy(Ids); |
| | | }).then(() => { |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | console.log(this.ids) |
| | | this.single = selection.length!=1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }).catch(() => {}); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | const Ids = this.ids; |
| | | |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "æ·»å å®¶åºæ¶æ¯å°è´¦"; |
| | | }, |
| | | |
| | | |
| | | /** æ¥ç详ç»ä¿¡æ¯ */ |
| | | handleCheck(row){ |
| | | const id = row.id; |
| | | this.$router.push("/familymodel/economy/economyInfo/" + id); |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | const id = row.id; |
| | | let jd = true |
| | | |
| | | this.$router.push({ |
| | | path:"/familymodel/economy/economyInfo/" + id, |
| | | query:{ |
| | | detail:jd |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | |
| | | handlePictureCardPreview(file) { |
| | | this.dialogImageUrl = file.url; |
| | | this.dialogVisible = true; |
| | | }, |
| | | /** æäº¤æé®ï¼æ°æ®æéï¼ */ |
| | | submitDataScope: function() { |
| | | |
| | | let ul = this.fileList.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | let uls = this.fileListOther.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | this.formDat.url = ul+","+uls |
| | | this.$refs["elForm"].validate(valid => { |
| | | if (valid) { |
| | | |
| | | addEconomy(this.formDat).then(response => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | requestUpload(params) |
| | | if(Ids.length==0) |
| | | { |
| | | var file = params.file; |
| | | var formData = new FormData(); |
| | | formData.append('uploadFile', file); |
| | | let _this = this |
| | | |
| | | uploadPic(formData).then(response => { |
| | | let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length) |
| | | |
| | | if(_this.fot.includes(pth) === true) |
| | | { |
| | | _this.fileList.push({name:response.data.fileName, "url":response.data.url}) |
| | | |
| | | } |
| | | |
| | | else{ |
| | | _this.fileListOther.push({name:response.data.fileName, url:response.data.url}) |
| | | |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const Ids = row.id || this.ids; |
| | | this.$modal.confirm('æ¯å¦ç¡®è®¤å é¤åºå·ä¸º"' + Ids + '"çæ°æ®é¡¹ï¼').then(function() { |
| | | return delEconomy(Ids); |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }).catch(() => {}); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | const Ids = this.ids; |
| | | |
| | | if(Ids.length==0) |
| | | { |
| | | this.download('/zfEconomy/export', { |
| | | ...this.queryParams |
| | | }, `zfEconomy_${new Date().getTime()}.xlsx`) |
| | | }else |
| | | { |
| | | this.download('/zfEconomy/export1/'+Ids, { |
| | | }, `zfEconomy_${new Date().getTime()}.xlsx`) |
| | | } |
| | | }else |
| | | { |
| | | this.download('/zfEconomy/export1/'+Ids, { |
| | | }, `zfEconomy_${new Date().getTime()}.xlsx`) |
| | | } |
| | | } |
| | | , |
| | | handleExportTemplate(){ |
| | | this.download('/zfEconomy/model', { |
| | | this.download('/zfEconomy/model', { |
| | | |
| | | }, `zfEconomy_${new Date().getTime()}.xlsx`) |
| | | }, `zfEconomy_${new Date().getTime()}.xlsx`) |
| | | }, |
| | | /** 导å
¥æä½*/ |
| | | handleEnport(params){ |
| | |
| | | } |
| | | |
| | | } |
| | | }, |
| | | }, |
| | | |
| | | // å¼¹çª |
| | | // å¼¹çª |
| | | handleShow(scope){ |
| | | |
| | | this.openDataScope = true |
| | | this.getList() |
| | | } |
| | | |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | .el-table__row.statistics-warning-row { |
| | | background: #E0EEFE; |
| | | |
| | | } |
| | | .el-table__row.statistics-warning-row1 { |
| | | background: #FFEFF2; |
| | | |
| | | } |
| | | </style> |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | .el-table__row.statistics-warning-row { |
| | | background: #E0EEFE; |
| | | |
| | | } |
| | | .el-table__row.statistics-warning-row1 { |
| | | background: #FFEFF2; |
| | | |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="form-header mt"> |
| | | <h4 class="dt h4">æ
游费ç¨è¯¦ç»è®°å½ </h4> |
| | | |
| | | </div> |
| | | |
| | | <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px"> |
| | | |
| | | <el-form-item label="å¼å§æ¶é´" prop="startTime"> |
| | | <el-input v-model="formData.startTime" placeholder="请è¾å
¥æ é¢" clearable :style="{width: '100%'}" :disabled="dsb"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="ç»ææ¶é´" prop="endTime"> |
| | | <el-input v-model="formData.endTime" placeholder="请è¾å
¥äººç©" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ é¢" prop="title"> |
| | | <el-input v-model="formData.title" placeholder="请è¾å
¥äººç©" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-form-item size="large"> |
| | | <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb">ä¿®æ¹</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-dialog :visible.sync="dialogVisible"> |
| | | <img w-full :src="dialogImageUrl" style="width: 700px; height: 700px" alt="Preview Image" /> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {addRole, updateRole} from "@/api/system/role"; |
| | | import {blobValidate} from "@/utils/ruoyi"; |
| | | import errorCode from "@/utils/errorCode"; |
| | | import {Message} from "element-ui"; |
| | | import { getTravelPriceInfo,updateTravelPrice, uploadPic, download} from "@/api/travel/index"; |
| | | |
| | | export default { |
| | | components: {}, |
| | | props: [], |
| | | data() { |
| | | return { |
| | | cdi:"æ
游费ç¨ä¿¡æ¯", |
| | | udi:"æ
游费ç¨ä¿®æ¹", |
| | | fot:[".jpg",".jif","png"], |
| | | fileList:[ |
| | | ], |
| | | fileListOther:[ |
| | | |
| | | ], |
| | | dsb:true, |
| | | btn:false, |
| | | isShow:true, |
| | | |
| | | travelpriceList: [], |
| | | |
| | | formData: { |
| | | id: undefined, |
| | | title: undefined, |
| | | startTime:undefined, |
| | | endTime:undefined, |
| | | url: undefined, |
| | | }, |
| | | dialogImageUrl: '', |
| | | dialogVisible: false, |
| | | disabled: false, |
| | | rules: { |
| | | title: [{ |
| | | required: true, |
| | | message: '请è¾å
¥å¤§äºæ é¢', |
| | | trigger: 'blur' |
| | | }], |
| | | familyId: [{ |
| | | required: true, |
| | | message: '请è¾å
¥å®¶åºå·', |
| | | trigger: 'blur' |
| | | }], |
| | | people: [{ |
| | | required: true, |
| | | message: '请è¾å
¥äººç©', |
| | | trigger: 'blur' |
| | | }], |
| | | address: [{ |
| | | required: true, |
| | | message: '请è¾å
¥å°ç¹', |
| | | trigger: 'blur' |
| | | }], |
| | | remark: [{ |
| | | // required: true, |
| | | message: '请è¾å
¥å¤æ³¨', |
| | | trigger: 'blur' |
| | | }], |
| | | |
| | | }, |
| | | typeOptions: [], |
| | | } |
| | | }, |
| | | computed: {}, |
| | | watch: {}, |
| | | created() { |
| | | const id = this.$route.params && this.$route.params.id; |
| | | let jd; |
| | | if(this.$route.query.detail!=undefined) |
| | | { |
| | | jd = this.$route.query.detail |
| | | this.btn= jd |
| | | this.dsb = !jd |
| | | this.isShow=true |
| | | document.title = "ä¿®æ¹æ
è¡è´¹ç¨è¯¦ç»ä¿¡æ¯"; |
| | | this.$route.meta.title = "ä¿®æ¹æ
è¡è´¹ç¨è¯¦ç»ä¿¡æ¯";//å表çåç§° |
| | | } |
| | | else{ |
| | | document.title = "æ
è¡è´¹ç¨è¯¦ç»ä¿¡æ¯"; |
| | | this.$route.meta.title = "æ
è¡è´¹ç¨è¯¦ç»ä¿¡æ¯";//å表çåç§° |
| | | this.isShow=true |
| | | } |
| | | |
| | | let _this = this |
| | | if (id) { |
| | | this.loading = true; |
| | | getTravelPriceInfo(id).then((response) => { |
| | | this.formData = response.data; |
| | | let paths = response.data.url.split(","); |
| | | for(let i = 0; i < paths.length; i++) |
| | | { |
| | | if(paths[i]!="") { |
| | | |
| | | let pth = paths[i].substr(paths[i].length - 4, paths[i].length) |
| | | |
| | | if (_this.fot.includes(pth) === true) |
| | | _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i]}) |
| | | else { |
| | | // alert(paths[i]) |
| | | let nms = paths[i].split("\/") |
| | | let nm = nms[nms.length - 1] |
| | | _this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i]}) |
| | | } |
| | | } |
| | | } |
| | | this.loading = false; |
| | | }); |
| | | this.getCateInfor() |
| | | |
| | | } |
| | | }, |
| | | mounted() {}, |
| | | methods: { |
| | | |
| | | submitForm() { |
| | | let ul = this.fileList.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | let uls = this.fileListOther.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | this.formData.url = ul+","+uls |
| | | |
| | | this.$refs['elForm'].validate(valid => { |
| | | |
| | | |
| | | if (valid) { |
| | | if (this.formData.id != undefined) { |
| | | updateTravelPrice(this.formData).then(response => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | // this.open = false; |
| | | this.btn=false |
| | | }); |
| | | } else { |
| | | this.$modal.msgSuccess("ä¿®æ¹å¤±è´¥"); |
| | | |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | resetForm() { |
| | | this.$refs['elForm'].resetFields() |
| | | }, |
| | | handlePreview(file) |
| | | { |
| | | let formData = {'path':"/"+file.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")}; |
| | | let lens = formData.path.split(".") |
| | | let suffix = lens[lens.length-1] |
| | | download(formData).then(async (response) => { |
| | | const isLogin = await blobValidate(response); |
| | | let nt = new Date().getTime() |
| | | let filename = 'familyevent_'+nt+'.'+suffix |
| | | const blob = new Blob([response]) |
| | | saveAs(blob, filename) |
| | | }) |
| | | }, |
| | | handleRemoveFile(file) { |
| | | for(let i = 0; i < this.fileListOther.length; i++) |
| | | { |
| | | if(this.fileListOther[i].url==file.url) |
| | | this.$delete(this.fileListOther,i); |
| | | } |
| | | }, |
| | | handleRemove(file) { |
| | | for(let i = 0; i < this.fileList.length; i++) |
| | | { |
| | | if(this.fileList[i].url==file.url) |
| | | this.$delete(this.fileList,i); |
| | | } |
| | | }, |
| | | handleFileCardPreview(file){ |
| | | this.dialogFileUrl = file.url; |
| | | const Base64 = require('js-base64').Base64 |
| | | this.desurl = process.env.VUE_APP_BASE_OTHER_API+'onlinePreview?url='+encodeURIComponent(Base64.encode(this.dialogFileUrl)); |
| | | myWindow=window.open(this.desurl,'','width=1200,height=800,top=150,left=300'); |
| | | }, |
| | | handlePictureCardPreview(file) { |
| | | this.dialogImageUrl = file.url; |
| | | this.dialogVisible = true; |
| | | }, |
| | | handleDownload(url) { |
| | | var formData = {'path':"/"+url.replace(process.env.VUE_APP_BASE_TRUE_API,"")}; |
| | | |
| | | let lens = formData.path.split(".") |
| | | let suffix = lens[lens.length-1] |
| | | download(formData).then(async (response) => { |
| | | const isLogin = await blobValidate(response); |
| | | let nt = new Date().getTime() |
| | | let filename = 'familyevent_'+nt+'.'+suffix |
| | | const blob = new Blob([response]) |
| | | saveAs(blob, filename) |
| | | }) |
| | | }, |
| | | handleEdit() |
| | | { |
| | | this.dsb = false |
| | | // this.btn = true |
| | | this.isShow=false |
| | | }, |
| | | requestUpload(params) |
| | | { |
| | | var file = params.file; |
| | | var formData = new FormData(); |
| | | formData.append('uploadFile', file); |
| | | let _this = this |
| | | |
| | | uploadPic(formData).then(response => { |
| | | let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length) |
| | | |
| | | if(_this.fot.includes(pth) === true) |
| | | { |
| | | _this.fileList.push({name:response.data.fileName, "url":response.data.url}) |
| | | |
| | | } |
| | | |
| | | else{ |
| | | _this.fileListOther.push({name:response.data.fileName, url:response.data.url}) |
| | | |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download('/zfEvent/export', { |
| | | ...this.queryParams |
| | | }, `zfEvent_${new Date().getTime()}.xlsx`) |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .app-container{ |
| | | background-color: #FEF7FC; |
| | | } |
| | | .mt |
| | | { |
| | | position: relative; |
| | | } |
| | | .dt{ |
| | | display: block; |
| | | |
| | | } |
| | | .pt{ |
| | | right: 10px; |
| | | top:-3px; |
| | | display: block; |
| | | position: absolute; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="app-container" style="opacity: 1;"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> |
| | | <div class="app-container" style="opacity: 1;"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> |
| | | |
| | | <el-form-item label="æ¶é´" > |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px;" |
| | | value-format="yyyy-MM-dd HH-MM" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ»å¤©æ°" prop="usePeople" > |
| | | <el-input |
| | | v-model="queryParams.usePeople" |
| | | placeholder="请è¾å
¥ä½¿ç¨äºº" |
| | | clearable |
| | | style="width: 240px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶é´" > |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px;" |
| | | value-format="yyyy-MM-dd HH-MM" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ»å¤©æ°" prop="usePeople" > |
| | | <el-input |
| | | v-model="queryParams.usePeople" |
| | | placeholder="请è¾å
¥ä½¿ç¨äºº" |
| | | clearable |
| | | style="width: 240px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button size="mini" @click="handleQuery" style=" width: 65px; height: 32px;background: #FFDDE3;border-radius:6px 6px 6px 6px;opacity:1;">æç´¢</el-button> |
| | | <el-button size="mini" @click="resetQuery" style=" width: 65px;height: 32px; background: #FFDDE3; border-radius:6px 6px 6px 6px;opacity: 1;">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form-item> |
| | | <el-button size="mini" @click="handleQuery" style=" width: 65px; height: 32px;background: #FFDDE3;border-radius:6px 6px 6px 6px;opacity:1;">æç´¢</el-button> |
| | | <el-button size="mini" @click="resetQuery" style=" width: 65px;height: 32px; background: #FFDDE3; border-radius:6px 6px 6px 6px;opacity: 1;">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:role:add']" |
| | | >æ°å¢</el-button> |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:role:remove']" |
| | | >å é¤</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['family:note:export']" |
| | | >导åº</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExportTemplate" |
| | | v-hasPermi="['family:note:export']" |
| | | >导å
¥æ¨¡æ¿ä¸è½½</el-button> |
| | | </el-col> |
| | | <el-col :span="1.2"> |
| | | <el-upload |
| | | action="" |
| | | class="upload-demo" |
| | | :show-file-list="false" |
| | | :http-request="handleEnport" |
| | | > |
| | | <el-button size="mini" type="primary" |
| | | plain |
| | | icon="el-icon-plus" >导å
¥</el-button> |
| | | |
| | | </el-upload> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | <!-- åºå·ãåºé/å°è´¦ãæ¶é´ãæ¶å
¥/æ¯åºãç¨éã使ç¨äººãç°é/èªå¨æ£åãä½é¢ãçµåæä»¶ã夿³¨ æä½--> |
| | | <!-- è¿éæä¸ªfamilyListæ°ç» æ¯å¨data()ä¸å®ä¹ç --> |
| | | <el-table v-loading="loading" :data="travelpriceList" @selection-change="handleSelectionChange" @row-click="handleShow" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="åºå·" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="120"/> |
| | | |
| | | <el-table-column label="èµ·" prop="startTime" sortable width="100" align="center"> |
| | | <template slot-scope="scope">{{scope.row.startTime? scope.row.startTime: 'ââââ'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="æ¢" prop="endTime" sortable width="100" align="center"> |
| | | <template slot-scope="scope">{{scope.row.endTime? scope.row.endTime: 'ââââ'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="æ»å¤©æ°" prop="totalDay" sortable width="100" /> |
| | | <el-table-column label="æ é¢" prop="title" sortable width="100" /> |
| | | |
| | | <el-table-column label="æ»éé¢" prop="totalCost" sortable width="100" /> |
| | | <el-table-column label="é¤è´¹" prop="eat" sortable width="100" /> |
| | | <el-table-column label="ä½å®¿" prop="stay" sortable width="100" /> |
| | | <el-table-column label="交é" prop="traffic" sortable width="100" /> |
| | | <el-table-column label="é¨ç¥¨" prop="entrance" sortable width="100" /> |
| | | <el-table-column label="è´ç©" prop="shopping" sortable width="80" /> |
| | | |
| | | |
| | | <el-table-column label="æä½" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope" v-if="scope.row.roleId !== 1"> |
| | | |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:role:add']" |
| | | >æ°å¢</el-button> |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['familymodel:economy:info']" |
| | | >ä¿®æ¹</el-button> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | type="text" |
| | | class="button_delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:role:remove']" |
| | | >å é¤</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['family:note:export']" |
| | | >导åº</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExportTemplate" |
| | | v-hasPermi="['family:note:export']" |
| | | >导å
¥æ¨¡æ¿ä¸è½½</el-button> |
| | | </el-col> |
| | | <el-col :span="1.2"> |
| | | <el-upload |
| | | action="" |
| | | class="upload-demo" |
| | | :show-file-list="false" |
| | | :http-request="handleEnport" |
| | | > |
| | | <el-button size="mini" type="primary" |
| | | plain |
| | | icon="el-icon-plus" >导å
¥</el-button> |
| | | > <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn></el-button> |
| | | <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['familymodel:economy:info']"> |
| | | <el-button size="mini" type="text" icon="el-icon-d-arrow-right" @click="handleCheck(scope.row)">æ¥ç详æ
</el-button> |
| | | </el-dropdown> |
| | | <el-button class="button" size="mini" type="text" @click="handleShow"> |
| | | <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn> </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | </el-upload> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | <!-- åºå·ãåºé/å°è´¦ãæ¶é´ãæ¶å
¥/æ¯åºãç¨éã使ç¨äººãç°é/èªå¨æ£åãä½é¢ãçµåæä»¶ã夿³¨ æä½--> |
| | | <!-- è¿éæä¸ªfamilyListæ°ç» æ¯å¨data()ä¸å®ä¹ç --> |
| | | <el-table v-loading="loading" :data="travelpriceList" @selection-change="handleSelectionChange" @row-click="handleShow" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="åºå·" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="120"/> |
| | | |
| | | <el-table-column label="èµ·" prop="startTime" sortable width="100" align="center"> |
| | | <template slot-scope="scope">{{scope.row.startTime? scope.row.startTime: 'ââââ'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="æ¢" prop="endTime" sortable width="100" align="center"> |
| | | <template slot-scope="scope">{{scope.row.endTime? scope.row.endTime: 'ââââ'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="æ»å¤©æ°" prop="totalDay" sortable width="100" /> |
| | | <el-table-column label="æ é¢" prop="title" sortable width="100" /> |
| | | |
| | | <el-table-column label="æ»éé¢" prop="totalCost" sortable width="100" /> |
| | | <el-table-column label="é¤è´¹" prop="eat" sortable width="100" /> |
| | | <el-table-column label="ä½å®¿" prop="stay" sortable width="100" /> |
| | | <el-table-column label="交é" prop="traffic" sortable width="100" /> |
| | | <el-table-column label="é¨ç¥¨" prop="entrance" sortable width="100" /> |
| | | <el-table-column label="è´ç©" prop="shopping" sortable width="100" /> |
| | | |
| | | |
| | | <el-table-column label="æä½" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope" v-if="scope.row.roleId !== 1"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['familymodel:economy:info']" |
| | | >ä¿®æ¹</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:role:remove']" |
| | | >å é¤</el-button> |
| | | <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['familymodel:economy:info']"> |
| | | <el-button size="mini" type="text" icon="el-icon-d-arrow-right" @click="handleCheck(scope.row)">æ¥ç详æ
</el-button> |
| | | </el-dropdown> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <el-dialog :title="title" :visible.sync="openDataScope" width="1500px" append-to-body > |
| | | <div style="background-color: #FEF7FC;"> |
| | | <el-dialog :title="title" :visible.sync="openDataScope" width="1500px" append-to-body > |
| | | <div style="background-color: #FEF7FC;"> |
| | | <el-table v-loading="loading" :data="detailList" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" > |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="åºå·" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="120"/> |
| | | <el-table-column label="æ¶é´" prop="happenTime" sortable width="100" align="center"> |
| | | <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: 'ââââ'}}</template> |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column label="åºå·" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="150"/> |
| | | <el-table-column label="æ¶é´" prop="happenTime" sortable width="150" align="center"> |
| | | <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: 'ââââ'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="å
容" prop="content" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="æ»éé¢" prop="totalcost" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="é¤è´¹" prop="eat" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="ä½å®¿" prop="stay" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="å
容" prop="content" sortable :show-overflow-tooltip="true" width="160" /> |
| | | <el-table-column label="æ»éé¢" prop="totalCost" sortable :show-overflow-tooltip="true" width="160" /> |
| | | <el-table-column label="é¤è´¹" prop="eat" sortable :show-overflow-tooltip="true" width="160" /> |
| | | <el-table-column label="ä½å®¿" prop="stay" sortable :show-overflow-tooltip="true" width="160" /> |
| | | <el-table-column label="交é" prop="traffic" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="é¨ç¥¨" prop="entrance" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="è´ç©" prop="shopping" sortable :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="æä½" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope" v-if="scope.row.roleId !== 1"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['familymodel:property:info']" |
| | | >ä¿®æ¹</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:role:remove']" |
| | | >å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | <pagination |
| | | v-show="total>0" |
| | |
| | | |
| | | </el-dialog> |
| | | |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | style="background: #FEF7FC;" |
| | | /> |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | style="background: #FEF7FC;" |
| | | /> |
| | | |
| | | <!-- æ·»å æä¿®æ¹èµäº§ä¿¡æ¯é
ç½®å¯¹è¯æ¡ --> |
| | | <!-- æ·»å æä¿®æ¹èµäº§ä¿¡æ¯é
ç½®å¯¹è¯æ¡ --> |
| | | |
| | | <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> |
| | | <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px"> |
| | | <el-form-item label="å°è´¦" prop="type"> |
| | | <el-input v-model="formDat.type" placeholder="请è¾å
¥å
容" clearable :style="{width: '100%'}" ></el-input> |
| | | </el-form-item> |
| | | <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> |
| | | <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px"> |
| | | <el-form-item label="å°è´¦" prop="type"> |
| | | <el-input v-model="formDat.type" placeholder="请è¾å
¥å
容" clearable :style="{width: '100%'}" ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¶é´" prop="happenTime"> |
| | | <el-date-picker |
| | | v-model='formDat.happenTime' |
| | | type='date' |
| | | placeholder='éæ©æ¥æ' |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶å
¥/æ¯åº" prop="price"> |
| | | <el-select v-model="formDat.price" placeholder="è¯·éæ©æ¶å
¥/æ¯åº" clearable :style="{width: '100%'}" > |
| | | <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="éé¢" prop="balance"> |
| | | <el-input v-model="formDat.balance" placeholder="请è¾å
¥ä½é¢" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¨é" prop="useFor"> |
| | | <el-input v-model="formDat.useFor" placeholder="请è¾å
¥ç¨é" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="使ç¨äºº" prop="usePeople"> |
| | | <el-input v-model="formDat.usePeople" placeholder="请è¾å
¥ä½¿ç¨äºº" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯ä»æ¹å¼" prop="kind"> |
| | | <el-input v-model="formDat.kind" placeholder="请è¾å
¥æ¯ä»æ¹å¼" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="formDat.remark" placeholder="请è¾å
¥å¤æ³¨" clearable :style="{width: '100%'}" ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶é´" prop="happenTime"> |
| | | <el-date-picker |
| | | v-model='formDat.happenTime' |
| | | type='date' |
| | | placeholder='éæ©æ¥æ' |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶å
¥/æ¯åº" prop="price"> |
| | | <el-select v-model="formDat.price" placeholder="è¯·éæ©æ¶å
¥/æ¯åº" clearable :style="{width: '100%'}" > |
| | | <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="éé¢" prop="balance"> |
| | | <el-input v-model="formDat.balance" placeholder="请è¾å
¥ä½é¢" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¨é" prop="useFor"> |
| | | <el-input v-model="formDat.useFor" placeholder="请è¾å
¥ç¨é" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="使ç¨äºº" prop="usePeople"> |
| | | <el-input v-model="formDat.usePeople" placeholder="请è¾å
¥ä½¿ç¨äºº" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯ä»æ¹å¼" prop="kind"> |
| | | <el-input v-model="formDat.kind" placeholder="请è¾å
¥æ¯ä»æ¹å¼" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="formDat.remark" placeholder="请è¾å
¥å¤æ³¨" clearable :style="{width: '100%'}" ></el-input> |
| | | </el-form-item> |
| | | |
| | | <h4 class="form-header">ç¸å
³å¾ç </h4> |
| | | <el-upload |
| | | action="#" |
| | | list-type="picture-card" |
| | | multiple |
| | | :http-request="requestUpload" |
| | | :file-list="fileList" |
| | | <h4 class="form-header">ç¸å
³å¾ç </h4> |
| | | <el-upload |
| | | action="#" |
| | | list-type="picture-card" |
| | | multiple |
| | | :http-request="requestUpload" |
| | | :file-list="fileList" |
| | | > |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | :src="file.url" |
| | | alt="" |
| | | style="width: 126px; height: 126px" |
| | | fit="cover" |
| | | :preview-src-list="[file.url]" |
| | | > |
| | | <span class="el-upload-list__item-actions"> |
| | | <span |
| | | class="el-upload-list__item-preview" |
| | | @click="handlePictureCardPreview(file)" |
| | | > |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | :src="file.url" |
| | | alt="" |
| | | style="width: 126px; height: 126px" |
| | | fit="cover" |
| | | :preview-src-list="[file.url]" |
| | | > |
| | | <span class="el-upload-list__item-actions"> |
| | | <span |
| | | class="el-upload-list__item-preview" |
| | | @click="handlePictureCardPreview(file)" |
| | | > |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | |
| | | <span |
| | | v-if="!disabled" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemove(file)" |
| | | > |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | |
| | | |
| | | </div> |
| | | </el-upload> |
| | | <h4 class="form-header">å
¶ä»éä»¶ </h4> |
| | | <el-upload |
| | | action="" |
| | | :file-list="fileListOther" |
| | | class="upload-demo" |
| | | multiple |
| | | |
| | | :on-remove="handleRemove" |
| | | :http-request="requestUpload" |
| | | :show-file-list="true" |
| | | <span |
| | | v-if="!disabled" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemove(file)" |
| | | > |
| | | <el-button type="primary">ä¸ä¼ </el-button> |
| | | <template #tip> |
| | | <div class="el-upload__tip"> |
| | | </div> |
| | | </template> |
| | | </el-upload> |
| | | |
| | | </el-form> |
| | | <h4 class="form-header"> </h4> |
| | | |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitDataScope">ç¡® å®</el-button> |
| | | <el-button @click="cancelData">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | </span> |
| | | |
| | | |
| | | </div> |
| | | </template> |
| | | </div> |
| | | </el-upload> |
| | | <h4 class="form-header">å
¶ä»éä»¶ </h4> |
| | | <el-upload |
| | | action="" |
| | | :file-list="fileListOther" |
| | | class="upload-demo" |
| | | multiple |
| | | |
| | | <script> |
| | | import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role"; |
| | | import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu"; |
| | | :on-remove="handleRemove" |
| | | :http-request="requestUpload" |
| | | :show-file-list="true" |
| | | > |
| | | <el-button type="primary">ä¸ä¼ </el-button> |
| | | <template #tip> |
| | | <div class="el-upload__tip"> |
| | | </div> |
| | | </template> |
| | | </el-upload> |
| | | |
| | | </el-form> |
| | | <h4 class="form-header"> </h4> |
| | | |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitDataScope">ç¡® å®</el-button> |
| | | <el-button @click="cancelData">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role"; |
| | | import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu"; |
| | | |
| | | |
| | | |
| | | //å¨system/note/index.jsä¸å¯¼å
¥æ¥å£å½æ° --æ¥å¥½äº |
| | | import {listTravelPrice,enload,delTravelPrice, addTravelPrice, uploadPic} from "@/api/travel/index"; |
| | | //å¨system/note/index.jsä¸å¯¼å
¥æ¥å£å½æ° --æ¥å¥½äº |
| | | import {listTravelPrice,enload,getTravelPriceInfo,delTravelPrice, addTravelPrice, uploadPic} from "@/api/travel/index"; |
| | | |
| | | export default { |
| | | name: "Role", |
| | | dicts: ['sys_normal_disable'], |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | disabled: false, |
| | | loading: true, |
| | | formData:[], |
| | | detailList:[], |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // 家大äºè®°è¡¨æ ¼æ°æ® |
| | | travelpriceList: [], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå±ï¼æ°æ®æéï¼ |
| | | openDataScope: false, |
| | | menuExpand: false, |
| | | menuNodeAll: false, |
| | | deptExpand: true, |
| | | deptNodeAll: false, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // æ°æ®èå´é项 |
| | | fot:[".jpg",".jif"], |
| | | fileList:[ |
| | | ], |
| | | fileListOther:[ |
| | | export default { |
| | | name: "Role", |
| | | dicts: ['sys_normal_disable'], |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | disabled: false, |
| | | loading: true, |
| | | formData:[], |
| | | detailList:[], |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // 家大äºè®°è¡¨æ ¼æ°æ® |
| | | travelpriceList: [], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå±ï¼æ°æ®æéï¼ |
| | | openDataScope: false, |
| | | menuExpand: false, |
| | | menuNodeAll: false, |
| | | deptExpand: true, |
| | | deptNodeAll: false, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // æ°æ®èå´é项 |
| | | fot:[".jpg",".jif"], |
| | | fileList:[ |
| | | ], |
| | | fileListOther:[ |
| | | |
| | | ], |
| | | dsb:true, |
| | | btn:false, |
| | | formDat: { |
| | | type: undefined, |
| | | createTime: undefined, |
| | | useFor: undefined, |
| | | usePeople: undefined, |
| | | kind:undefined, |
| | | remark: undefined, |
| | | url: undefined, |
| | | detailList:undefined, |
| | | }, |
| | | // èåå表 |
| | | menuOptions: [], |
| | | // é¨é¨å表 |
| | | deptOptions: [], |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | type:undefined, |
| | | useFor:undefined, |
| | | usePeople:undefined, |
| | | createTime:undefined, |
| | | |
| | | }, |
| | | // 表ååæ° |
| | | form: {}, |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label" |
| | | }, |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | usePeople: [{ |
| | | required: true, |
| | | message: '请è¾å
¥ä½¿ç¨äºº', |
| | | trigger: 'blur' |
| | | }], |
| | | |
| | | useFor: [{ |
| | | required: true, |
| | | message: '请è¾å
¥ç¨é', |
| | | trigger: 'blur' |
| | | }], |
| | | type: [{ |
| | | required: true, |
| | | message: '请è¾å
¥å°è´¦å
容', |
| | | trigger: 'blur' |
| | | }], |
| | | balance: [{ |
| | | required: true, |
| | | message: '请è¾å
¥éé¢', |
| | | trigger: 'blur' |
| | | }], |
| | | kind: [{ |
| | | // required: true, |
| | | message: '请è¾å
¥æ¯ä»æ¹å¼', |
| | | trigger: 'blur' |
| | | }], |
| | | createTime: [{ |
| | | required: true, |
| | | message: 'è¯·éæ©æ¥æéæ©', |
| | | trigger: 'change' |
| | | }], |
| | | price: [{ |
| | | required: true, |
| | | message: 'è¯·éæ©äºé¡¹å
容', |
| | | trigger: 'blur' |
| | | }], |
| | | }, |
| | | typeOptions: [ |
| | | { |
| | | value: 'æ¶å
¥', |
| | | label: 'æ¶å
¥', |
| | | }, |
| | | { |
| | | value: 'æ¯åº', |
| | | label: 'æ¯åº', |
| | | }], |
| | | typeOptions1: [ |
| | | { |
| | | value: '0', |
| | | label: 'ç°é', |
| | | }, |
| | | { |
| | | value: '1', |
| | | label: 'èªå¨æ£å', |
| | | } |
| | | ], |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | |
| | | }, |
| | | methods: { |
| | | |
| | | //åºé/å°è´¦çéæ© |
| | | getSrc1(type) { |
| | | if (type === 0) { |
| | | return 'åºé' |
| | | }else { |
| | | return 'å°è´¦' |
| | | } |
| | | ], |
| | | dsb:true, |
| | | btn:false, |
| | | formDat: { |
| | | type: undefined, |
| | | createTime: undefined, |
| | | useFor: undefined, |
| | | usePeople: undefined, |
| | | kind:undefined, |
| | | remark: undefined, |
| | | url: undefined, |
| | | detailList:undefined, |
| | | }, |
| | | // èåå表 |
| | | menuOptions: [], |
| | | // é¨é¨å表 |
| | | deptOptions: [], |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | type:undefined, |
| | | useFor:undefined, |
| | | usePeople:undefined, |
| | | createTime:undefined, |
| | | |
| | | getSrc2(kind) { |
| | | if (kind == 0) { |
| | | return 'ç°é' |
| | | }else { |
| | | return 'èªå¨æ£å' |
| | | } |
| | | }, |
| | | |
| | | // åæ¶æé® |
| | | cancelData() { |
| | | this.open = false; |
| | | this.reset(); |
| | | // 表ååæ° |
| | | form: {}, |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label" |
| | | }, |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | usePeople: [{ |
| | | required: true, |
| | | message: '请è¾å
¥ä½¿ç¨äºº', |
| | | trigger: 'blur' |
| | | }], |
| | | |
| | | //éè¡åè² |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if (rowIndex % 2 == 0) { |
| | | return "statistics-warning-row1"; |
| | | } else { |
| | | return "statistics-warning-row"; |
| | | } |
| | | useFor: [{ |
| | | required: true, |
| | | message: '请è¾å
¥ç¨é', |
| | | trigger: 'blur' |
| | | }], |
| | | type: [{ |
| | | required: true, |
| | | message: '请è¾å
¥å°è´¦å
容', |
| | | trigger: 'blur' |
| | | }], |
| | | balance: [{ |
| | | required: true, |
| | | message: '请è¾å
¥éé¢', |
| | | trigger: 'blur' |
| | | }], |
| | | kind: [{ |
| | | // required: true, |
| | | message: '请è¾å
¥æ¯ä»æ¹å¼', |
| | | trigger: 'blur' |
| | | }], |
| | | createTime: [{ |
| | | required: true, |
| | | message: 'è¯·éæ©æ¥æéæ©', |
| | | trigger: 'change' |
| | | }], |
| | | price: [{ |
| | | required: true, |
| | | message: 'è¯·éæ©äºé¡¹å
容', |
| | | trigger: 'blur' |
| | | }], |
| | | }, |
| | | |
| | | /** æ¥è¯¢è§è²å表 */ |
| | | //å表æ¾ç¤ºå®¶å¤§äºè®° |
| | | |
| | | |
| | | getList() { |
| | | this.loading = true; |
| | | this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0] |
| | | this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1] |
| | | // console.log(this.queryParams) |
| | | // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => { |
| | | |
| | | listTravelPrice(this.queryParams).then(response => { |
| | | // alert(123) |
| | | // console.log(response.data) |
| | | this.travelpriceList = response.data.data; |
| | | console.log(this.travelpriceList[0]) |
| | | this.total = response.data.total; |
| | | this.loading = false; |
| | | } |
| | | ); |
| | | }, |
| | | handleRemove(file) { |
| | | for(let i = 0; i < this.fileListOther.length; i++) |
| | | typeOptions: [ |
| | | { |
| | | if(this.fileListOther[i].url==file.url) |
| | | this.$delete(this.fileListOther,i); |
| | | value: 'æ¶å
¥', |
| | | label: 'æ¶å
¥', |
| | | }, |
| | | { |
| | | value: 'æ¯åº', |
| | | label: 'æ¯åº', |
| | | }], |
| | | typeOptions1: [ |
| | | { |
| | | value: '0', |
| | | label: 'ç°é', |
| | | }, |
| | | { |
| | | value: '1', |
| | | label: 'èªå¨æ£å', |
| | | } |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | getRowId(row) |
| | | }, |
| | | methods: { |
| | | |
| | | //åºé/å°è´¦çéæ© |
| | | getSrc1(type) { |
| | | if (type === 0) { |
| | | return 'åºé' |
| | | }else { |
| | | return 'å°è´¦' |
| | | } |
| | | }, |
| | | |
| | | getSrc2(kind) { |
| | | if (kind == 0) { |
| | | return 'ç°é' |
| | | }else { |
| | | return 'èªå¨æ£å' |
| | | } |
| | | }, |
| | | |
| | | // åæ¶æé® |
| | | cancelData() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | |
| | | //éè¡åè² |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if (rowIndex % 2 == 0) { |
| | | return "statistics-warning-row1"; |
| | | } else { |
| | | return "statistics-warning-row"; |
| | | } |
| | | }, |
| | | |
| | | /** æ¥è¯¢è§è²å表 */ |
| | | //å表æ¾ç¤ºå®¶å¤§äºè®° |
| | | |
| | | |
| | | getList() { |
| | | this.loading = true; |
| | | this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0] |
| | | this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1] |
| | | // console.log(this.queryParams) |
| | | // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => { |
| | | |
| | | listTravelPrice(this.queryParams).then(response => { |
| | | // alert(123) |
| | | // console.log(response.data) |
| | | this.travelpriceList = response.data.data; |
| | | console.log(this.travelpriceList[0]) |
| | | this.total = response.data.total; |
| | | this.loading = false; |
| | | } |
| | | ); |
| | | }, |
| | | handleRemove(file) { |
| | | for(let i = 0; i < this.fileListOther.length; i++) |
| | | { |
| | | return row.id |
| | | }, |
| | | // åæ¶æé®ï¼æ°æ®æéï¼ |
| | | cancelDataScope() { |
| | | this.openDataScope = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | if (this.$refs.menu != undefined) { |
| | | this.$refs.menu.setCheckedKeys([]); |
| | | } |
| | | this.menuExpand = false, |
| | | this.menuNodeAll = false, |
| | | this.deptExpand = true, |
| | | this.deptNodeAll = false, |
| | | this.form = { |
| | | roleId: undefined, |
| | | roleName: undefined, |
| | | roleKey: undefined, |
| | | roleSort: 0, |
| | | status: "0", |
| | | menuIds: [], |
| | | deptIds: [], |
| | | menuCheckStrictly: true, |
| | | deptCheckStrictly: true, |
| | | remark: undefined |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | console.log(this.ids) |
| | | this.single = selection.length!=1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | if(this.fileListOther[i].url==file.url) |
| | | this.$delete(this.fileListOther,i); |
| | | } |
| | | }, |
| | | |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "æ·»å å®¶åºæ¶æ¯å°è´¦"; |
| | | }, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | getRowId(row) |
| | | { |
| | | return row.id |
| | | }, |
| | | // åæ¶æé®ï¼æ°æ®æéï¼ |
| | | cancelDataScope() { |
| | | this.openDataScope = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | if (this.$refs.menu != undefined) { |
| | | this.$refs.menu.setCheckedKeys([]); |
| | | } |
| | | this.menuExpand = false, |
| | | this.menuNodeAll = false, |
| | | this.deptExpand = true, |
| | | this.deptNodeAll = false, |
| | | this.form = { |
| | | roleId: undefined, |
| | | roleName: undefined, |
| | | roleKey: undefined, |
| | | roleSort: 0, |
| | | status: "0", |
| | | menuIds: [], |
| | | deptIds: [], |
| | | menuCheckStrictly: true, |
| | | deptCheckStrictly: true, |
| | | remark: undefined |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | console.log(this.ids) |
| | | this.single = selection.length!=1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | |
| | | // å¼¹çª |
| | | handleShow(row){ |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "æ·»å å®¶åºæ¶æ¯å°è´¦"; |
| | | }, |
| | | |
| | | // å¼¹çª |
| | | handleShow(row){ |
| | | const id = row.id; |
| | | this.openDataScope = true |
| | | // this.getList() |
| | | // this.getList() |
| | | //alert(123) |
| | | this.detailList = row.detailList |
| | | // alert(row.index) |
| | | this.title = "å±ç¤ºè¯¦æ
"; |
| | | |
| | | }, |
| | | }, |
| | | |
| | | /** æ¥ç详ç»ä¿¡æ¯ */ |
| | | handleCheck(row){ |
| | | const id = row.id; |
| | | // alert(id) |
| | | /** æ¥ç详ç»ä¿¡æ¯ */ |
| | | handleCheck(row){ |
| | | const id = row.id; |
| | | // alert(id) |
| | | // alert(row.fee_id) |
| | | this.$router.push("/self/travel/Info/" + id); |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | const id = row.id; |
| | | let jd = true |
| | | this.$router.push("/self/travel/Info/" + id); |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | const id = row.id; |
| | | // let jd = true |
| | | |
| | | this.$router.push({ |
| | | path:"/self/travel/edit/" + id, |
| | | query:{ |
| | | detail:jd |
| | | } |
| | | }); |
| | | }, |
| | | // this.$router.push({ |
| | | // path:"/self/travel/edit/" + id, |
| | | // query:{ |
| | | // detail:jd |
| | | // } |
| | | // }); |
| | | this.$router.push("/self/travel/edit/" + id); |
| | | }, |
| | | |
| | | |
| | | handlePictureCardPreview(file) { |
| | | this.dialogImageUrl = file.url; |
| | | this.dialogVisible = true; |
| | | }, |
| | | /** æäº¤æé®ï¼æ°æ®æéï¼ */ |
| | | submitDataScope: function() { |
| | | handlePictureCardPreview(file) { |
| | | this.dialogImageUrl = file.url; |
| | | this.dialogVisible = true; |
| | | }, |
| | | /** æäº¤æé®ï¼æ°æ®æéï¼ */ |
| | | submitDataScope: function() { |
| | | |
| | | let ul = this.fileList.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | let uls = this.fileListOther.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | this.formDat.url = ul+","+uls |
| | | this.$refs["elForm"].validate(valid => { |
| | | if (valid) { |
| | | let ul = this.fileList.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | let uls = this.fileListOther.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | this.formDat.url = ul+","+uls |
| | | this.$refs["elForm"].validate(valid => { |
| | | if (valid) { |
| | | |
| | | addEconomy(this.formDat).then(response => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | requestUpload(params) |
| | | { |
| | | var file = params.file; |
| | | var formData = new FormData(); |
| | | formData.append('uploadFile', file); |
| | | let _this = this |
| | | addEconomy(this.formDat).then(response => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | requestUpload(params) |
| | | { |
| | | var file = params.file; |
| | | var formData = new FormData(); |
| | | formData.append('uploadFile', file); |
| | | let _this = this |
| | | |
| | | uploadPic(formData).then(response => { |
| | | let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length) |
| | | uploadPic(formData).then(response => { |
| | | let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length) |
| | | |
| | | if(_this.fot.includes(pth) === true) |
| | | { |
| | | _this.fileList.push({name:response.data.fileName, "url":response.data.url}) |
| | | |
| | | } |
| | | |
| | | else{ |
| | | _this.fileListOther.push({name:response.data.fileName, url:response.data.url}) |
| | | |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const Ids = row.id || this.ids; |
| | | this.$modal.confirm('æ¯å¦ç¡®è®¤å é¤åºå·ä¸º"' + Ids + '"çæ°æ®é¡¹ï¼').then(function() { |
| | | return delEconomy(Ids); |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }).catch(() => {}); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | const Ids = this.ids; |
| | | |
| | | if(Ids.length==0) |
| | | if(_this.fot.includes(pth) === true) |
| | | { |
| | | _this.fileList.push({name:response.data.fileName, "url":response.data.url}) |
| | | |
| | | } |
| | | |
| | | else{ |
| | | _this.fileListOther.push({name:response.data.fileName, url:response.data.url}) |
| | | |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const Ids = row.id || this.ids; |
| | | this.$modal.confirm('æ¯å¦ç¡®è®¤å é¤åºå·ä¸º"' + Ids + '"çæ°æ®é¡¹ï¼').then(function() { |
| | | return delEconomy(Ids); |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }).catch(() => {}); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | const Ids = this.ids; |
| | | |
| | | if(Ids.length==0) |
| | | { |
| | | this.download('/zfEconomy/export', { |
| | | ...this.queryParams |
| | | }, `zfEconomy_${new Date().getTime()}.xlsx`) |
| | | }else |
| | | { |
| | | this.download('/zfEconomy/export1/'+Ids, { |
| | | }, `zfEconomy_${new Date().getTime()}.xlsx`) |
| | | } |
| | | }else |
| | | { |
| | | this.download('/zfEconomy/export1/'+Ids, { |
| | | }, `zfEconomy_${new Date().getTime()}.xlsx`) |
| | | } |
| | | } |
| | | , |
| | | handleExportTemplate(){ |
| | | this.download('/zfEconomy/model', { |
| | | this.download('/zfEconomy/model', { |
| | | |
| | | }, `zfEconomy_${new Date().getTime()}.xlsx`) |
| | | }, `zfEconomy_${new Date().getTime()}.xlsx`) |
| | | }, |
| | | /** 导å
¥æä½*/ |
| | | handleEnport(params){ |
| | |
| | | } |
| | | |
| | | } |
| | | }, |
| | | }; |
| | | }, |
| | | }; |
| | | |
| | | |
| | | </script> |
| | | </script> |
| | | |
| | | <style> |
| | | .el-table__row.statistics-warning-row { |
| | | background: #E0EEFE; |
| | | <style> |
| | | .el-table__row.statistics-warning-row { |
| | | background: #E0EEFE; |
| | | |
| | | } |
| | | .el-table__row.statistics-warning-row1 { |
| | | background: #FFEFF2; |
| | | } |
| | | .el-table__row.statistics-warning-row1 { |
| | | background: #FFEFF2; |
| | | |
| | | } |
| | | </style> |
| | | } |
| | | .button { |
| | | background: center no-repeat url('../../assets/images/å¼¹çª 1.png') ; |
| | | /* margin-left: 66vw; */ |
| | | } |
| | | .button_delete { |
| | | background: center no-repeat url('../../assets/images/å é¤2.png') ; |
| | | |
| | | /* margin-left: 66vw; */ |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="form-header mt"> |
| | | <h4 class="dt h4">æ
游ç»å详ç»ä¿¡æ¯ </h4> |
| | | |
| | | </div> |
| | | |
| | | <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px"> |
| | | <el-form-item label="åçæ¶é´" prop="happenTime"> |
| | | <el-input v-model="formData.happenTime" placeholder="请è¾å
¥åçæ¶é´" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å°ç¹" prop="address"> |
| | | <el-input v-model="formData.address" placeholder="请è¾å
¥å°ç¹" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="人ç©" prop="people"> |
| | | <el-input v-model="formData.people" placeholder="请è¾å
¥äººç©" clearable :style="{width: '100%'}" :disabled="dsb"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ é¢" prop="title"> |
| | | <el-input v-model="formData.title" placeholder="请è¾å
¥æ é¢" clearable :style="{width: '100%'}" :disabled="dsb"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ
æ" prop="travelPeriod"> |
| | | <el-input v-model="formData.travelPeriod" placeholder="请è¾å
¥æ é¢" clearable :style="{width: '100%'}" :disabled="dsb"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æè¯æ
游" prop="certificate"> |
| | | <el-input v-model="formData.certificate" placeholder="请è¾å
¥æ é¢" clearable :style="{width: '100%'}" :disabled="dsb"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="è´¹ç¨" prop="totalPrice"> |
| | | <el-input v-model="formData.totalPrice" placeholder="请è¾å
¥æ é¢" clearable :style="{width: '100%'}" :disabled="dsb"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¯å¦å
¬è´¹æ
游" prop="self"> |
| | | <el-select v-model="formData.self=== 1 ? 'èªè´¹':'å
¬è´¹'" placeholder="è¯·éæ©ä¿æ´/æ¶çº³" clearable :style="{width: '100%'}" :disabled="dsb" ></el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="formData.remark" placeholder="请è¾å
¥å¤æ³¨" clearable :style="{width: '100%'}" :disabled="dsb"></el-input> |
| | | </el-form-item> |
| | | |
| | | <h4 class="form-header">çµåæä»¶ </h4> |
| | | <el-upload |
| | | action="#" |
| | | list-type="picture-card" |
| | | multiple |
| | | :http-request="requestUpload" |
| | | :file-list="fileList" |
| | | > |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | :src="file.url" |
| | | alt="" |
| | | style="width: 147px; height: 147px" |
| | | fit="cover" |
| | | :preview-src-list="[file.url]" |
| | | > |
| | | <span class="el-upload-list__item-actions"> |
| | | <span |
| | | v-if="isShow" |
| | | class="el-upload-list__item-preview" |
| | | @click="handlePictureCardPreview(file)" |
| | | > |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | <span |
| | | v-if="isShow" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleDownload(file.url)" |
| | | > |
| | | <i class="el-icon-download"></i> |
| | | </span> |
| | | <span |
| | | v-if="isShow" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemove(file)" |
| | | > |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | </span> |
| | | |
| | | |
| | | </div> |
| | | </el-upload> |
| | | |
| | | <h4 class="form-header">å
¶ä»éä»¶ </h4> |
| | | <el-upload |
| | | action="" |
| | | :file-list="fileListOther" |
| | | class="upload-demo" |
| | | multiple |
| | | list-type="picture-card" |
| | | :on-preview="handleFileCardPreview" |
| | | :on-remove="handleRemove" |
| | | :http-request="requestUpload" |
| | | :show-file-list="true" |
| | | > |
| | | |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | src="../../assets/401_images/401.gif" |
| | | alt="" |
| | | style="width: 147px; height: 147px" |
| | | fit="cover" |
| | | > |
| | | <span class="el-upload-list__item-actions"> |
| | | <span |
| | | v-if="isShow" |
| | | class="el-upload-list__item-preview" |
| | | @click="handleFileCardPreview(file)" |
| | | > |
| | | <i class="el-icon-zoom-in"></i> |
| | | </span> |
| | | <span |
| | | v-if="isShow" |
| | | @click="handleRemove(file)" |
| | | class="el-upload-list__item-delete" |
| | | |
| | | > |
| | | <i class="el-icon-download"></i> |
| | | </span> |
| | | <span |
| | | v-if="isShow" |
| | | class="el-upload-list__item-delete" |
| | | @click="handleRemoveFile(file)" |
| | | > |
| | | <i class="el-icon-delete"></i> |
| | | </span> |
| | | </span> |
| | | |
| | | |
| | | </div> |
| | | |
| | | |
| | | </el-upload> |
| | | |
| | | <el-form-item size="large"> |
| | | <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb">ä¿®æ¹</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-dialog :visible.sync="dialogVisible"> |
| | | <img w-full :src="dialogImageUrl" style="width: 700px; height: 700px" alt="Preview Image" /> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {addRole, updateRole} from "@/api/system/role"; |
| | | import {blobValidate} from "@/utils/ruoyi"; |
| | | import errorCode from "@/utils/errorCode"; |
| | | import {Message} from "element-ui"; |
| | | import { getTravelBaseInfo, updateTravelBase, uploadPic, download} from "@/api/travel/index"; |
| | | |
| | | export default { |
| | | components: {}, |
| | | props: [], |
| | | data() { |
| | | return { |
| | | cdi:"å®¶åºå¤§äºè®°ä¿¡æ¯", |
| | | udi:"å®¶åºå¤§äºè®°ä¿®æ¹", |
| | | fot:[".jpg",".jif","png"], |
| | | fileList:[ |
| | | ], |
| | | fileListOther:[ |
| | | |
| | | ], |
| | | dsb:true, |
| | | btn:false, |
| | | isShow:true, |
| | | |
| | | doctorList: [], |
| | | |
| | | formData: { |
| | | id: undefined, |
| | | title: undefined, |
| | | people: undefined, |
| | | address: undefined, |
| | | remark: undefined, |
| | | url: undefined, |
| | | }, |
| | | dialogImageUrl: '', |
| | | dialogVisible: false, |
| | | disabled: false, |
| | | rules: { |
| | | title: [{ |
| | | required: true, |
| | | message: '请è¾å
¥å¤§äºæ é¢', |
| | | trigger: 'blur' |
| | | }], |
| | | familyId: [{ |
| | | required: true, |
| | | message: '请è¾å
¥å®¶åºå·', |
| | | trigger: 'blur' |
| | | }], |
| | | people: [{ |
| | | required: true, |
| | | message: '请è¾å
¥äººç©', |
| | | trigger: 'blur' |
| | | }], |
| | | address: [{ |
| | | required: true, |
| | | message: '请è¾å
¥å°ç¹', |
| | | trigger: 'blur' |
| | | }], |
| | | remark: [{ |
| | | // required: true, |
| | | message: '请è¾å
¥å¤æ³¨', |
| | | trigger: 'blur' |
| | | }], |
| | | |
| | | }, |
| | | typeOptions: [], |
| | | } |
| | | }, |
| | | computed: {}, |
| | | watch: {}, |
| | | created() { |
| | | const id = this.$route.params && this.$route.params.id; |
| | | let jd; |
| | | if(this.$route.query.detail!=undefined) |
| | | { |
| | | jd = this.$route.query.detail |
| | | this.btn= jd |
| | | this.dsb = !jd |
| | | this.isShow=true |
| | | document.title = "ä¿®æ¹æ
游ç»å详ç»ä¿¡æ¯"; |
| | | this.$route.meta.title = "ä¿®æ¹æ
游ç»å详ç»ä¿¡æ¯";//å表çåç§° |
| | | } |
| | | else{ |
| | | document.title = "æ
游ç»å详ç»ä¿¡æ¯"; |
| | | this.$route.meta.title = "æ
游ç»å详ç»ä¿¡æ¯";//å表çåç§° |
| | | this.isShow=true |
| | | } |
| | | |
| | | let _this = this |
| | | if (id) { |
| | | this.loading = true; |
| | | getTravelBaseInfo(id).then((response) => { |
| | | this.formData = response.data; |
| | | let paths = response.data.url.split(","); |
| | | for(let i = 0; i < paths.length; i++) |
| | | { |
| | | if(paths[i]!="") { |
| | | |
| | | let pth = paths[i].substr(paths[i].length - 4, paths[i].length) |
| | | |
| | | if (_this.fot.includes(pth) === true) |
| | | _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i]}) |
| | | else { |
| | | // alert(paths[i]) |
| | | let nms = paths[i].split("\/") |
| | | let nm = nms[nms.length - 1] |
| | | _this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i]}) |
| | | } |
| | | } |
| | | } |
| | | this.loading = false; |
| | | }); |
| | | this.getCateInfor() |
| | | |
| | | } |
| | | }, |
| | | mounted() {}, |
| | | methods: { |
| | | |
| | | submitForm() { |
| | | let ul = this.fileList.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | let uls = this.fileListOther.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | }).join(",") |
| | | this.formData.url = ul+","+uls |
| | | |
| | | this.$refs['elForm'].validate(valid => { |
| | | |
| | | |
| | | if (valid) { |
| | | if (this.formData.id != undefined) { |
| | | updateTravelBase(this.formData).then(response => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | // this.open = false; |
| | | this.btn=false |
| | | }); |
| | | } else { |
| | | this.$modal.msgSuccess("ä¿®æ¹å¤±è´¥"); |
| | | |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | resetForm() { |
| | | this.$refs['elForm'].resetFields() |
| | | }, |
| | | handlePreview(file) |
| | | { |
| | | let formData = {'path':"/"+file.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")}; |
| | | let lens = formData.path.split(".") |
| | | let suffix = lens[lens.length-1] |
| | | download(formData).then(async (response) => { |
| | | const isLogin = await blobValidate(response); |
| | | let nt = new Date().getTime() |
| | | let filename = 'familyevent_'+nt+'.'+suffix |
| | | const blob = new Blob([response]) |
| | | saveAs(blob, filename) |
| | | }) |
| | | }, |
| | | handleRemoveFile(file) { |
| | | for(let i = 0; i < this.fileListOther.length; i++) |
| | | { |
| | | if(this.fileListOther[i].url==file.url) |
| | | this.$delete(this.fileListOther,i); |
| | | } |
| | | }, |
| | | handleRemove(file) { |
| | | for(let i = 0; i < this.fileList.length; i++) |
| | | { |
| | | if(this.fileList[i].url==file.url) |
| | | this.$delete(this.fileList,i); |
| | | } |
| | | }, |
| | | handleFileCardPreview(file){ |
| | | this.dialogFileUrl = file.url; |
| | | const Base64 = require('js-base64').Base64 |
| | | this.desurl = process.env.VUE_APP_BASE_OTHER_API+'onlinePreview?url='+encodeURIComponent(Base64.encode(this.dialogFileUrl)); |
| | | myWindow=window.open(this.desurl,'','width=1200,height=800,top=150,left=300'); |
| | | }, |
| | | handlePictureCardPreview(file) { |
| | | this.dialogImageUrl = file.url; |
| | | this.dialogVisible = true; |
| | | }, |
| | | handleDownload(url) { |
| | | var formData = {'path':"/"+url.replace(process.env.VUE_APP_BASE_TRUE_API,"")}; |
| | | |
| | | let lens = formData.path.split(".") |
| | | let suffix = lens[lens.length-1] |
| | | download(formData).then(async (response) => { |
| | | const isLogin = await blobValidate(response); |
| | | let nt = new Date().getTime() |
| | | let filename = 'familyevent_'+nt+'.'+suffix |
| | | const blob = new Blob([response]) |
| | | saveAs(blob, filename) |
| | | }) |
| | | }, |
| | | handleEdit() |
| | | { |
| | | this.dsb = false |
| | | // this.btn = true |
| | | this.isShow=false |
| | | }, |
| | | requestUpload(params) |
| | | { |
| | | var file = params.file; |
| | | var formData = new FormData(); |
| | | formData.append('uploadFile', file); |
| | | let _this = this |
| | | |
| | | uploadPic(formData).then(response => { |
| | | let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length) |
| | | |
| | | if(_this.fot.includes(pth) === true) |
| | | { |
| | | _this.fileList.push({name:response.data.fileName, "url":response.data.url}) |
| | | |
| | | } |
| | | |
| | | else{ |
| | | _this.fileListOther.push({name:response.data.fileName, url:response.data.url}) |
| | | |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download('/zfEvent/export', { |
| | | ...this.queryParams |
| | | }, `zfEvent_${new Date().getTime()}.xlsx`) |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .app-container{ |
| | | background-color: #FEF7FC; |
| | | } |
| | | .mt |
| | | { |
| | | position: relative; |
| | | } |
| | | .dt{ |
| | | display: block; |
| | | |
| | | } |
| | | .pt{ |
| | | right: 10px; |
| | | top:-3px; |
| | | display: block; |
| | | position: absolute; |
| | | } |
| | | </style> |