|  | @@ -1,15 +1,11 @@
 | 
	
		
			
				|  |  | -/**
 | 
	
		
			
				|  |  | -  // author:jiana
 | 
	
		
			
				|  |  | -  // time:2025-04-23
 | 
	
		
			
				|  |  | -  // desc:运单管理
 | 
	
		
			
				|  |  | -*/
 | 
	
		
			
				|  |  | +/** // author:jiana // time:2025-04-23 // desc:运单管理 */
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <div class="waybillManager">
 | 
	
		
			
				|  |  |      <Card>
 | 
	
		
			
				|  |  |        <!-- 筛选 -->
 | 
	
		
			
				|  |  |        <Row :gutter="8">
 | 
	
		
			
				|  |  |          <Col span="10">
 | 
	
		
			
				|  |  | -          运单号 <Input v-model="filtInfoData.waybillNum" placeholder="请输入运单号" style="width:80%"/>
 | 
	
		
			
				|  |  | +          运单号 <Input v-model="filtInfoData.waybillNum" placeholder="请输入运单号" style="width: 80%" />
 | 
	
		
			
				|  |  |          </Col>
 | 
	
		
			
				|  |  |          <Col span="2">
 | 
	
		
			
				|  |  |            <Button type="primary" @click="getData">查询</Button>
 | 
	
	
		
			
				|  | @@ -17,49 +13,55 @@
 | 
	
		
			
				|  |  |          <Col span="2">
 | 
	
		
			
				|  |  |            <Button @click="resetData">重置</Button>
 | 
	
		
			
				|  |  |          </Col>
 | 
	
		
			
				|  |  | +        <Col span="2">
 | 
	
		
			
				|  |  | +          <Button type="primary" @click="exportModal = true">导出</Button>
 | 
	
		
			
				|  |  | +        </Col>
 | 
	
		
			
				|  |  |        </Row>
 | 
	
		
			
				|  |  |      </Card>
 | 
	
		
			
				|  |  | -    <Card style="margin-top:20px;">
 | 
	
		
			
				|  |  | +    <Card style="margin-top: 20px">
 | 
	
		
			
				|  |  |        <Row>
 | 
	
		
			
				|  |  | -        <Col span="12">
 | 
	
		
			
				|  |  | -          运单列表
 | 
	
		
			
				|  |  | -        </Col>
 | 
	
		
			
				|  |  | -        <Col span="12" style="text-align: right;">
 | 
	
		
			
				|  |  | +        <Col span="12"> 运单列表 </Col>
 | 
	
		
			
				|  |  | +        <Col span="12" style="text-align: right">
 | 
	
		
			
				|  |  |            <!-- <Button @click="batchOperation">批量操作</Button> -->
 | 
	
		
			
				|  |  |          </Col>
 | 
	
		
			
				|  |  |        </Row>
 | 
	
		
			
				|  |  |        <!-- 表格部分 -->
 | 
	
		
			
				|  |  | -      <el-table v-loading="loading" :data="TabData.data" border style="width: 100%;margin-top:20px;" @selection-change="handleSelectionChange">
 | 
	
		
			
				|  |  | +      <el-table
 | 
	
		
			
				|  |  | +        v-loading="loading"
 | 
	
		
			
				|  |  | +        :data="TabData.data"
 | 
	
		
			
				|  |  | +        border
 | 
	
		
			
				|  |  | +        style="width: 100%; margin-top: 20px"
 | 
	
		
			
				|  |  | +        @selection-change="handleSelectionChange"
 | 
	
		
			
				|  |  | +      >
 | 
	
		
			
				|  |  |          <!-- <el-table-column type="selection" align="center" width="50"/> -->
 | 
	
		
			
				|  |  | -        <el-table-column label="运单号" width="180" prop="waybillNum" align="center"/>
 | 
	
		
			
				|  |  | +        <el-table-column label="运单号" width="180" prop="waybillNum" align="center" />
 | 
	
		
			
				|  |  |          <el-table-column label="运输起始地" width="100" prop="transportOrigin" align="center"></el-table-column>
 | 
	
		
			
				|  |  |          <el-table-column label="运输目的地" width="120" prop="transportDestination" align="center"></el-table-column>
 | 
	
		
			
				|  |  | -        <el-table-column label="司机姓名" prop="driverName" width="120"  align="center"></el-table-column>
 | 
	
		
			
				|  |  | +        <el-table-column label="司机姓名" prop="driverName" width="120" align="center"></el-table-column>
 | 
	
		
			
				|  |  |          <el-table-column label="司机手机号" prop="driverPhone" width="120" align="center"></el-table-column>
 | 
	
		
			
				|  |  |          <el-table-column label="车牌" prop="plateNumber" width="120" align="center"></el-table-column>
 | 
	
		
			
				|  |  | -        <el-table-column label="车牌颜色" align="center" prop="plateColor" width="100">
 | 
	
		
			
				|  |  | -        </el-table-column>
 | 
	
		
			
				|  |  | +        <el-table-column label="车牌颜色" align="center" prop="plateColor" width="100"> </el-table-column>
 | 
	
		
			
				|  |  |          <el-table-column label="状态" align="center" width="100">
 | 
	
		
			
				|  |  |            <template #default="scope">
 | 
	
		
			
				|  |  | -            <span>{{ wayBillStatus(scope.row.status)}}</span>
 | 
	
		
			
				|  |  | +            <span>{{ wayBillStatus(scope.row.status) }}</span>
 | 
	
		
			
				|  |  |            </template>
 | 
	
		
			
				|  |  |          </el-table-column>
 | 
	
		
			
				|  |  |          <el-table-column label="运输发货时间" width="160" align="center">
 | 
	
		
			
				|  |  |            <template #default="scope">
 | 
	
		
			
				|  |  | -            {{ moment(scope.row.startTime).format('yyyy-MM-DD hh:mm:ss') || '暂无'}}
 | 
	
		
			
				|  |  | +            {{ moment(scope.row.startTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
 | 
	
		
			
				|  |  |            </template>
 | 
	
		
			
				|  |  |          </el-table-column>
 | 
	
		
			
				|  |  |          <el-table-column label="运输到货时间" width="160" align="center">
 | 
	
		
			
				|  |  |            <template #default="scope">
 | 
	
		
			
				|  |  | -            {{ moment(scope.row.endTime).format('yyyy-MM-DD hh:mm:ss') || '暂无'}}
 | 
	
		
			
				|  |  | +            {{ moment(scope.row.endTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
 | 
	
		
			
				|  |  |            </template>
 | 
	
		
			
				|  |  |          </el-table-column>
 | 
	
		
			
				|  |  |          <el-table-column label="订单号" prop="orderInfo.orderNum" width="220" align="center"></el-table-column>
 | 
	
		
			
				|  |  |          <el-table-column label="物料名称" prop="orderInfo.name" width="150" align="center"></el-table-column>
 | 
	
		
			
				|  |  |          <el-table-column label="供应商名称" prop="orderInfo.company" width="180" align="center"></el-table-column>
 | 
	
		
			
				|  |  |          <el-table-column label="牧场名称" prop="orderInfo.orgName" width="180" align="center"></el-table-column>
 | 
	
		
			
				|  |  | -        <el-table-column label="操作" width="130"  fixed="right" align="center">
 | 
	
		
			
				|  |  | -          <template  #default="scope">
 | 
	
		
			
				|  |  | +        <el-table-column label="操作" width="130" fixed="right" align="center">
 | 
	
		
			
				|  |  | +          <template #default="scope">
 | 
	
		
			
				|  |  |              <Button class="opt_btn" size="small" type="primary" ghost @click="lookTrack(scope.row)">查看轨迹</Button>
 | 
	
		
			
				|  |  |              <!-- <Button class="opt_btn" size="small" type="warning" @click="deleteInfo(scope.row.id)">删除</Button> -->
 | 
	
		
			
				|  |  |            </template>
 | 
	
	
		
			
				|  | @@ -73,35 +75,61 @@
 | 
	
		
			
				|  |  |      <Modal v-model="showModal" width="75%" title="查看轨迹">
 | 
	
		
			
				|  |  |        <mapTrack :waybillNum="waybillNum" :waybill="waybill" v-if="showModal"></mapTrack>
 | 
	
		
			
				|  |  |      </Modal>
 | 
	
		
			
				|  |  | +    <!-- 运单状态选择弹框 -->
 | 
	
		
			
				|  |  | +    <Modal v-model="exportModal" width="30%" @on-ok="exportData" ok-text="确认导出" title="导出运单状态选择">
 | 
	
		
			
				|  |  | +      <div>
 | 
	
		
			
				|  |  | +        <div class="modal-content">
 | 
	
		
			
				|  |  | +          <div class="modal-header">
 | 
	
		
			
				|  |  | +            <h3>运单状态选择</h3>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +          <div class="modal-body">
 | 
	
		
			
				|  |  | +            <el-select v-model="waybillStatus" placeholder="全部">
 | 
	
		
			
				|  |  | +              <el-option label="全部" value=""></el-option>
 | 
	
		
			
				|  |  | +              <el-option label="未开始" value="CREATED"></el-option>
 | 
	
		
			
				|  |  | +              <el-option label="运输中" value="IN_TRANSIT"></el-option>
 | 
	
		
			
				|  |  | +              <el-option label="运单结束" value="FINISHED"></el-option>
 | 
	
		
			
				|  |  | +            </el-select>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    </Modal>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  | -import { defineComponent, ref ,reactive, onMounted} from 'vue'
 | 
	
		
			
				|  |  | +import { defineComponent, ref, reactive, onMounted } from 'vue'
 | 
	
		
			
				|  |  |  import { tms } from '@/request/api'
 | 
	
		
			
				|  |  | -import { Message,Modal,Spin,Input } from 'view-ui-plus'
 | 
	
		
			
				|  |  | +import { Message, Modal, Spin, Input } from 'view-ui-plus'
 | 
	
		
			
				|  |  |  import moment from 'moment'
 | 
	
		
			
				|  |  | -import {useRouter,useRoute} from 'vue-router'
 | 
	
		
			
				|  |  | -import AMapLoader from "@amap/amap-jsapi-loader";
 | 
	
		
			
				|  |  | -import mapTrack from "./mapTrack.vue"
 | 
	
		
			
				|  |  | -import {wayBillStatus,plateColorFilter} from '@/utils/system/filters'
 | 
	
		
			
				|  |  | +import { useRouter, useRoute } from 'vue-router'
 | 
	
		
			
				|  |  | +import AMapLoader from '@amap/amap-jsapi-loader'
 | 
	
		
			
				|  |  | +import mapTrack from './mapTrack.vue'
 | 
	
		
			
				|  |  | +import api from '@/request/apiConfig'
 | 
	
		
			
				|  |  | +import { wayBillStatus, plateColorFilter } from '@/utils/system/filters'
 | 
	
		
			
				|  |  | +import axios from 'axios'
 | 
	
		
			
				|  |  |  export default defineComponent({
 | 
	
		
			
				|  |  | -  components:{
 | 
	
		
			
				|  |  | -    mapTrack
 | 
	
		
			
				|  |  | +  components: {
 | 
	
		
			
				|  |  | +    mapTrack,
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    setup() {
 | 
	
		
			
				|  |  | -    const router = useRouter();
 | 
	
		
			
				|  |  | -    const route = useRoute();
 | 
	
		
			
				|  |  | -    let filtInfoData = reactive({ // 搜索
 | 
	
		
			
				|  |  | -      limit:10,offset:0,waybillNum:''
 | 
	
		
			
				|  |  | +    const router = useRouter()
 | 
	
		
			
				|  |  | +    const route = useRoute()
 | 
	
		
			
				|  |  | +    const exportModal = ref(false)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    let filtInfoData = reactive({
 | 
	
		
			
				|  |  | +      // 搜索
 | 
	
		
			
				|  |  | +      limit: 10,
 | 
	
		
			
				|  |  | +      offset: 0,
 | 
	
		
			
				|  |  | +      waybillNum: '',
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    let TabData = ref([])  // 列表数据
 | 
	
		
			
				|  |  | +    let TabData = ref([]) // 列表数据
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      let loading = ref(false)
 | 
	
		
			
				|  |  |      //获取列表内容
 | 
	
		
			
				|  |  | -    async function getData(){
 | 
	
		
			
				|  |  | +    async function getData() {
 | 
	
		
			
				|  |  |        loading.value = true
 | 
	
		
			
				|  |  | -      await tms.queryWaybillByCondition(filtInfoData).then(res =>{
 | 
	
		
			
				|  |  | +      await tms.queryWaybillByCondition(filtInfoData).then(res => {
 | 
	
		
			
				|  |  |          if (res.code == 0) {
 | 
	
		
			
				|  |  |            TabData.value = res
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -109,7 +137,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        loading.value = false
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      //重置
 | 
	
		
			
				|  |  | -    function resetData(){
 | 
	
		
			
				|  |  | +    function resetData() {
 | 
	
		
			
				|  |  |        filtInfoData.offset = 0
 | 
	
		
			
				|  |  |        filtInfoData.limit = 10
 | 
	
		
			
				|  |  |        filtInfoData.waybillNum = ''
 | 
	
	
		
			
				|  | @@ -118,75 +146,131 @@ export default defineComponent({
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      let currentPage = ref(1)
 | 
	
		
			
				|  |  |      //更改页码
 | 
	
		
			
				|  |  | -    function changePage (page) {
 | 
	
		
			
				|  |  | -      if(TabData.value.limit){
 | 
	
		
			
				|  |  | -        filtInfoData.offset = (page -1) *  TabData.value.limit  //更新偏移量
 | 
	
		
			
				|  |  | -        currentPage = page  //切换当前页码
 | 
	
		
			
				|  |  | -        getData() 
 | 
	
		
			
				|  |  | +    function changePage(page) {
 | 
	
		
			
				|  |  | +      if (TabData.value.limit) {
 | 
	
		
			
				|  |  | +        filtInfoData.offset = (page - 1) * TabData.value.limit //更新偏移量
 | 
	
		
			
				|  |  | +        currentPage = page //切换当前页码
 | 
	
		
			
				|  |  | +        getData()
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      //删除
 | 
	
		
			
				|  |  | -    function deleteInfo(id){
 | 
	
		
			
				|  |  | +    function deleteInfo(id) {
 | 
	
		
			
				|  |  |        this.$Modal.confirm({
 | 
	
		
			
				|  |  |          title: '提示',
 | 
	
		
			
				|  |  |          content: '<p>确定删除该信息吗?</p>',
 | 
	
		
			
				|  |  | -        onOk: async() => {
 | 
	
		
			
				|  |  | -          const params={
 | 
	
		
			
				|  |  | -            id:id,
 | 
	
		
			
				|  |  | -            reason:offSafeValue.value
 | 
	
		
			
				|  |  | +        onOk: async () => {
 | 
	
		
			
				|  |  | +          const params = {
 | 
	
		
			
				|  |  | +            id: id,
 | 
	
		
			
				|  |  | +            reason: offSafeValue.value,
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          await cow.cattleDealoffSale(params).then(res=>{
 | 
	
		
			
				|  |  | -            if(res.code === 101){
 | 
	
		
			
				|  |  | -              Message.success('删除成功!');
 | 
	
		
			
				|  |  | +          await cow.cattleDealoffSale(params).then(res => {
 | 
	
		
			
				|  |  | +            if (res.code === 101) {
 | 
	
		
			
				|  |  | +              Message.success('删除成功!')
 | 
	
		
			
				|  |  |                getData()
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |            })
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          onCancel: () => {
 | 
	
		
			
				|  |  | -          this.$Message.info('Clicked cancel');
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +          this.$Message.info('Clicked cancel')
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  |        })
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      //批量操作
 | 
	
		
			
				|  |  | -    function batchOperation(){
 | 
	
		
			
				|  |  | -      
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +    function batchOperation() {}
 | 
	
		
			
				|  |  |      const showModal = ref(false)
 | 
	
		
			
				|  |  |      let waybillNum = ref('')
 | 
	
		
			
				|  |  |      let waybill = ref({}) // 运单数据
 | 
	
		
			
				|  |  |      // 查看详情
 | 
	
		
			
				|  |  | -    function lookTrack(data){
 | 
	
		
			
				|  |  | +    function lookTrack(data) {
 | 
	
		
			
				|  |  |        waybill.value = data
 | 
	
		
			
				|  |  |        waybillNum.value = data.waybillNum
 | 
	
		
			
				|  |  |        showModal.value = true
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // 选择监听器
 | 
	
		
			
				|  |  | -    const handleSelectionChange = (val) =>{
 | 
	
		
			
				|  |  | -      context.emit("selection-change", val)
 | 
	
		
			
				|  |  | +    const handleSelectionChange = val => {
 | 
	
		
			
				|  |  | +      context.emit('selection-change', val)
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    const waybillStatus = ref('')
 | 
	
		
			
				|  |  | +    // 导出
 | 
	
		
			
				|  |  | +    const exportData = () => {
 | 
	
		
			
				|  |  | +      console.log(api, 'api');
 | 
	
		
			
				|  |  | +      axios({
 | 
	
		
			
				|  |  | +        method: 'get',
 | 
	
		
			
				|  |  | +        url: api.apiTms + '/waybills/wayBillListExport',
 | 
	
		
			
				|  |  | +        // headers里面设置token
 | 
	
		
			
				|  |  | +        headers: {
 | 
	
		
			
				|  |  | +          'Content-Type': 'application/json',
 | 
	
		
			
				|  |  | +          'X-AIYANGNIU-SIGNATURE': localStorage.aynUserToken,
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        params: {
 | 
	
		
			
				|  |  | +          status: waybillStatus.value,
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        dataType: 'json',
 | 
	
		
			
				|  |  | +        // 二进制流文件,一定要设置成blob,默认是json
 | 
	
		
			
				|  |  | +        responseType: 'blob',
 | 
	
		
			
				|  |  | +      }).then(res => {
 | 
	
		
			
				|  |  | +        const filename = '运单报表'
 | 
	
		
			
				|  |  | +        const link = document.createElement('a')
 | 
	
		
			
				|  |  | +        const blob = new Blob([res.data], { type: 'application/zip;charset=utf-8' })
 | 
	
		
			
				|  |  | +        if ('download' in document.createElement('a')) {
 | 
	
		
			
				|  |  | +          // 非IE下载
 | 
	
		
			
				|  |  | +          const elink = document.createElement('a')
 | 
	
		
			
				|  |  | +          elink.download = filename + '.xls'
 | 
	
		
			
				|  |  | +          elink.style.display = 'none'
 | 
	
		
			
				|  |  | +          elink.href = URL.createObjectURL(blob)
 | 
	
		
			
				|  |  | +          document.body.appendChild(elink)
 | 
	
		
			
				|  |  | +          elink.click()
 | 
	
		
			
				|  |  | +          URL.revokeObjectURL(elink.href) // 释放URL 对象
 | 
	
		
			
				|  |  | +          document.body.removeChild(elink)
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          // IE10+下载
 | 
	
		
			
				|  |  | +          navigator.msSaveBlob(blob, fileName)
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    onMounted(()=>{
 | 
	
		
			
				|  |  | -      getData() 
 | 
	
		
			
				|  |  | +    onMounted(() => {
 | 
	
		
			
				|  |  | +      getData()
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  | -      handleSelectionChange,getData,changePage,moment,deleteInfo,TabData,filtInfoData,
 | 
	
		
			
				|  |  | -      loading,batchOperation,resetData,lookTrack,showModal,wayBillStatus,plateColorFilter,waybillNum,waybill
 | 
	
		
			
				|  |  | +      handleSelectionChange,
 | 
	
		
			
				|  |  | +      getData,
 | 
	
		
			
				|  |  | +      changePage,
 | 
	
		
			
				|  |  | +      moment,
 | 
	
		
			
				|  |  | +      deleteInfo,
 | 
	
		
			
				|  |  | +      TabData,
 | 
	
		
			
				|  |  | +      filtInfoData,
 | 
	
		
			
				|  |  | +      loading,
 | 
	
		
			
				|  |  | +      batchOperation,
 | 
	
		
			
				|  |  | +      resetData,
 | 
	
		
			
				|  |  | +      lookTrack,
 | 
	
		
			
				|  |  | +      showModal,
 | 
	
		
			
				|  |  | +      wayBillStatus,
 | 
	
		
			
				|  |  | +      plateColorFilter,
 | 
	
		
			
				|  |  | +      waybillNum,
 | 
	
		
			
				|  |  | +      waybill,
 | 
	
		
			
				|  |  | +      exportData,
 | 
	
		
			
				|  |  | +      exportModal,
 | 
	
		
			
				|  |  | +      waybillStatus
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <style lang="scss" scoped>
 | 
	
		
			
				|  |  | -.waybillManager{
 | 
	
		
			
				|  |  | +.waybillManager {
 | 
	
		
			
				|  |  |    padding: 1em;
 | 
	
		
			
				|  |  | -  .opt_btn{margin-bottom:3px; margin-right: 3px;}
 | 
	
		
			
				|  |  | -  .page_style{
 | 
	
		
			
				|  |  | -    text-align: right; margin-top: 1em;
 | 
	
		
			
				|  |  | +  .opt_btn {
 | 
	
		
			
				|  |  | +    margin-bottom: 3px;
 | 
	
		
			
				|  |  | +    margin-right: 3px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  .page_style {
 | 
	
		
			
				|  |  | +    text-align: right;
 | 
	
		
			
				|  |  | +    margin-top: 1em;
 | 
	
		
			
				|  |  |      // background-color: var(--system-container-background);
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -</style>
 | 
	
		
			
				|  |  | +</style>
 |