|
@@ -387,6 +387,7 @@
|
|
|
:lazy-render="true"
|
|
:lazy-render="true"
|
|
|
:show-confirm-button="checkUploadImages()"
|
|
:show-confirm-button="checkUploadImages()"
|
|
|
@confirm="addDetails"
|
|
@confirm="addDetails"
|
|
|
|
|
+ @cancel="cancelReturnedDetailDialog"
|
|
|
>
|
|
>
|
|
|
<div style="max-height: 70vh; overflow-y: auto">
|
|
<div style="max-height: 70vh; overflow-y: auto">
|
|
|
<van-field
|
|
<van-field
|
|
@@ -642,7 +643,7 @@
|
|
|
capture="user"
|
|
capture="user"
|
|
|
accept="image/*"
|
|
accept="image/*"
|
|
|
hidden
|
|
hidden
|
|
|
- @change ="outerCartonInput"
|
|
|
|
|
|
|
+ @change="outerCartonInput"
|
|
|
/>
|
|
/>
|
|
|
|
|
|
|
|
<input
|
|
<input
|
|
@@ -651,7 +652,7 @@
|
|
|
capture="user"
|
|
capture="user"
|
|
|
accept="image/*"
|
|
accept="image/*"
|
|
|
hidden
|
|
hidden
|
|
|
- @change ="innerContentsInput"
|
|
|
|
|
|
|
+ @change="innerContentsInput"
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
|
</van-dialog>
|
|
</van-dialog>
|
|
@@ -681,7 +682,7 @@ import {
|
|
|
showLoadingToast,
|
|
showLoadingToast,
|
|
|
closeToast,
|
|
closeToast,
|
|
|
showConfirmDialog,
|
|
showConfirmDialog,
|
|
|
- showImagePreview,
|
|
|
|
|
|
|
+ showImagePreview
|
|
|
} from 'vant'
|
|
} from 'vant'
|
|
|
import { getHeader, goBack, scanError, scanSuccess } from '@/utils/android'
|
|
import { getHeader, goBack, scanError, scanSuccess } from '@/utils/android'
|
|
|
import {
|
|
import {
|
|
@@ -699,7 +700,7 @@ import {
|
|
|
searchBarcode,
|
|
searchBarcode,
|
|
|
searchOwnerBarcode,
|
|
searchOwnerBarcode,
|
|
|
shops,
|
|
shops,
|
|
|
- validateDate,
|
|
|
|
|
|
|
+ validateDate
|
|
|
} from '@/api/returned/index.ts'
|
|
} from '@/api/returned/index.ts'
|
|
|
import { carrierOptions, getOwner, getWarehouse } from '@/api/basic/index.ts'
|
|
import { carrierOptions, getOwner, getWarehouse } from '@/api/basic/index.ts'
|
|
|
import { useStore } from '@/store/modules/user'
|
|
import { useStore } from '@/store/modules/user'
|
|
@@ -897,7 +898,7 @@ const params = ref({
|
|
|
buyerPhone: null,
|
|
buyerPhone: null,
|
|
|
originalNo: null,
|
|
originalNo: null,
|
|
|
remark: null,
|
|
remark: null,
|
|
|
- details: [],
|
|
|
|
|
|
|
+ details: []
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
// 商品信息
|
|
// 商品信息
|
|
@@ -937,7 +938,7 @@ const selectDetail = ref({
|
|
|
operatorName: null,
|
|
operatorName: null,
|
|
|
operatorTime: null,
|
|
operatorTime: null,
|
|
|
skuImage: null,
|
|
skuImage: null,
|
|
|
- orginSkuImage: null,
|
|
|
|
|
|
|
+ orginSkuImage: null
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
function initDetail() {
|
|
function initDetail() {
|
|
@@ -977,7 +978,7 @@ function initDetail() {
|
|
|
operatorName: null,
|
|
operatorName: null,
|
|
|
operatorTime: null,
|
|
operatorTime: null,
|
|
|
skuImage: null,
|
|
skuImage: null,
|
|
|
- orginSkuImage: null,
|
|
|
|
|
|
|
+ orginSkuImage: null
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1073,7 +1074,7 @@ function matchReturned(express_no) {
|
|
|
if (['已入仓', '已拆包'].includes(headStatus)) {
|
|
if (['已入仓', '已拆包'].includes(headStatus)) {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'primary',
|
|
type: 'primary',
|
|
|
- message: `当前退回单号${returnNo}--${headStatus}`,
|
|
|
|
|
|
|
+ message: `当前退回单号${returnNo}--${headStatus}`
|
|
|
})
|
|
})
|
|
|
init(false)
|
|
init(false)
|
|
|
params.value.id = id
|
|
params.value.id = id
|
|
@@ -1088,7 +1089,7 @@ function matchReturned(express_no) {
|
|
|
} else {
|
|
} else {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'danger',
|
|
type: 'danger',
|
|
|
- message: '当前退回单号已进行过登记 如需修改请前往PC端进行',
|
|
|
|
|
|
|
+ message: '当前退回单号已进行过登记 如需修改请前往PC端进行'
|
|
|
})
|
|
})
|
|
|
scanSuccess()
|
|
scanSuccess()
|
|
|
}
|
|
}
|
|
@@ -1114,7 +1115,7 @@ function matchOrder(expressNo) {
|
|
|
recipientName,
|
|
recipientName,
|
|
|
phone,
|
|
phone,
|
|
|
logisticName,
|
|
logisticName,
|
|
|
- details,
|
|
|
|
|
|
|
+ details
|
|
|
} = data
|
|
} = data
|
|
|
showNotify({ type: 'success', message: '匹配到原单信息' })
|
|
showNotify({ type: 'success', message: '匹配到原单信息' })
|
|
|
params.value.upstreamNo = upstreamNo
|
|
params.value.upstreamNo = upstreamNo
|
|
@@ -1142,7 +1143,7 @@ function matchOrder(expressNo) {
|
|
|
expirationDate,
|
|
expirationDate,
|
|
|
batchNumber,
|
|
batchNumber,
|
|
|
quality,
|
|
quality,
|
|
|
- attributeBin,
|
|
|
|
|
|
|
+ attributeBin
|
|
|
} = item
|
|
} = item
|
|
|
let qualityStatus
|
|
let qualityStatus
|
|
|
if (quality) {
|
|
if (quality) {
|
|
@@ -1167,7 +1168,7 @@ function matchOrder(expressNo) {
|
|
|
batchNumber: batchNumber,
|
|
batchNumber: batchNumber,
|
|
|
warehouse: attributeBin,
|
|
warehouse: attributeBin,
|
|
|
qualityStatus: qualityStatus,
|
|
qualityStatus: qualityStatus,
|
|
|
- isOriginal: true,
|
|
|
|
|
|
|
+ isOriginal: true
|
|
|
})
|
|
})
|
|
|
params.value.details = list
|
|
params.value.details = list
|
|
|
matchCarrier(expressNo)
|
|
matchCarrier(expressNo)
|
|
@@ -1184,7 +1185,7 @@ function matchCarrier(expressNo) {
|
|
|
if (!data || data.length === 0) {
|
|
if (!data || data.length === 0) {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'primary',
|
|
type: 'primary',
|
|
|
- message: '请手动选择承运商',
|
|
|
|
|
|
|
+ message: '请手动选择承运商'
|
|
|
})
|
|
})
|
|
|
} else {
|
|
} else {
|
|
|
params.value.logisticsName = data
|
|
params.value.logisticsName = data
|
|
@@ -1212,7 +1213,7 @@ function matchAsn(expressNo) {
|
|
|
shopName,
|
|
shopName,
|
|
|
recipientName,
|
|
recipientName,
|
|
|
logisticName,
|
|
logisticName,
|
|
|
- upstreamNo,
|
|
|
|
|
|
|
+ upstreamNo
|
|
|
} = data
|
|
} = data
|
|
|
params.value.returnNo = expressNo
|
|
params.value.returnNo = expressNo
|
|
|
params.value.upstreamNo = upstreamNo
|
|
params.value.upstreamNo = upstreamNo
|
|
@@ -1292,7 +1293,7 @@ function init(showInputPage = true) {
|
|
|
buyerPhone: null,
|
|
buyerPhone: null,
|
|
|
originalNo: null,
|
|
originalNo: null,
|
|
|
remark: null,
|
|
remark: null,
|
|
|
- details: [],
|
|
|
|
|
|
|
+ details: []
|
|
|
}
|
|
}
|
|
|
storeOptions.value = []
|
|
storeOptions.value = []
|
|
|
expressNo.value = null
|
|
expressNo.value = null
|
|
@@ -1339,7 +1340,7 @@ async function queryBarcode() {
|
|
|
showLoadingToast({
|
|
showLoadingToast({
|
|
|
duration: 0,
|
|
duration: 0,
|
|
|
forbidClick: true,
|
|
forbidClick: true,
|
|
|
- message: '查询商品信息中.....',
|
|
|
|
|
|
|
+ message: '查询商品信息中.....'
|
|
|
})
|
|
})
|
|
|
const barcode = scancode.value
|
|
const barcode = scancode.value
|
|
|
const { ownerCode, details } = params.value
|
|
const { ownerCode, details } = params.value
|
|
@@ -1366,7 +1367,7 @@ async function queryOwnerBarcode(ownerCode, barcode) {
|
|
|
try {
|
|
try {
|
|
|
const results = await searchOwnerBarcode({ ownerCode, barcode })
|
|
const results = await searchOwnerBarcode({ ownerCode, barcode })
|
|
|
const {
|
|
const {
|
|
|
- data: { basSku },
|
|
|
|
|
|
|
+ data: { basSku }
|
|
|
} = results
|
|
} = results
|
|
|
if (!basSku) {
|
|
if (!basSku) {
|
|
|
return false
|
|
return false
|
|
@@ -1374,6 +1375,7 @@ async function queryOwnerBarcode(ownerCode, barcode) {
|
|
|
addDetailByBasSku(basSku)
|
|
addDetailByBasSku(basSku)
|
|
|
return true
|
|
return true
|
|
|
} catch (err) {
|
|
} catch (err) {
|
|
|
|
|
+ closeToast()
|
|
|
console.log(err.message)
|
|
console.log(err.message)
|
|
|
}
|
|
}
|
|
|
return false
|
|
return false
|
|
@@ -1396,6 +1398,7 @@ async function queryBarcodeBy(barcode) {
|
|
|
scanSuccess()
|
|
scanSuccess()
|
|
|
return null
|
|
return null
|
|
|
} catch (err) {
|
|
} catch (err) {
|
|
|
|
|
+ closeToast()
|
|
|
scanError()
|
|
scanError()
|
|
|
console.log(err.message)
|
|
console.log(err.message)
|
|
|
}
|
|
}
|
|
@@ -1481,7 +1484,7 @@ const manufactureTimeConfirm = async (result) => {
|
|
|
ownerCode,
|
|
ownerCode,
|
|
|
sku,
|
|
sku,
|
|
|
manufactureTime,
|
|
manufactureTime,
|
|
|
- 'manufactureTime',
|
|
|
|
|
|
|
+ 'manufactureTime'
|
|
|
)
|
|
)
|
|
|
if (!check_validate_date) {
|
|
if (!check_validate_date) {
|
|
|
console.log('检验出现异常')
|
|
console.log('检验出现异常')
|
|
@@ -1510,7 +1513,7 @@ const validityTimeConfirm = async (result) => {
|
|
|
ownerCode,
|
|
ownerCode,
|
|
|
sku,
|
|
sku,
|
|
|
validityTime,
|
|
validityTime,
|
|
|
- 'validityTime',
|
|
|
|
|
|
|
+ 'validityTime'
|
|
|
)
|
|
)
|
|
|
if (!check_validate_date) {
|
|
if (!check_validate_date) {
|
|
|
return
|
|
return
|
|
@@ -1524,6 +1527,11 @@ function getTagColor(qualityStatus) {
|
|
|
return getTagColorBy(qualityStatus)
|
|
return getTagColorBy(qualityStatus)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+const cancelReturnedDetailDialog = async () => {
|
|
|
|
|
+ returnedDetailDialog.value = false
|
|
|
|
|
+ initDetail()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const addDetails = async () => {
|
|
const addDetails = async () => {
|
|
|
const isCheck = checkUploadImages()
|
|
const isCheck = checkUploadImages()
|
|
|
if (!isCheck) {
|
|
if (!isCheck) {
|
|
@@ -1543,7 +1551,7 @@ const addDetails = async () => {
|
|
|
validityTime: detail_validity_time,
|
|
validityTime: detail_validity_time,
|
|
|
manufactureTime: detail_manufacture_time,
|
|
manufactureTime: detail_manufacture_time,
|
|
|
qualityStatus: detail_quality_status,
|
|
qualityStatus: detail_quality_status,
|
|
|
- number: detailNumber,
|
|
|
|
|
|
|
+ number: detailNumber
|
|
|
} = selectDetail.value
|
|
} = selectDetail.value
|
|
|
if (['次品', '待修复'].includes(detail_quality_status)) {
|
|
if (['次品', '待修复'].includes(detail_quality_status)) {
|
|
|
params.value.details.push(detail)
|
|
params.value.details.push(detail)
|
|
@@ -1564,7 +1572,7 @@ const addDetails = async () => {
|
|
|
if (searchIndex > -1) {
|
|
if (searchIndex > -1) {
|
|
|
showConfirmDialog({
|
|
showConfirmDialog({
|
|
|
title: '系统提示',
|
|
title: '系统提示',
|
|
|
- message: '查询到有对应的商品详情是否进行合并',
|
|
|
|
|
|
|
+ message: '查询到有对应的商品详情是否进行合并'
|
|
|
})
|
|
})
|
|
|
.then(() => {
|
|
.then(() => {
|
|
|
const { number } = params.value.details[searchIndex]
|
|
const { number } = params.value.details[searchIndex]
|
|
@@ -1591,7 +1599,7 @@ function removeDetails(index) {
|
|
|
}
|
|
}
|
|
|
showConfirmDialog({
|
|
showConfirmDialog({
|
|
|
title: '系统提示',
|
|
title: '系统提示',
|
|
|
- message: '是否删除当前登记信息',
|
|
|
|
|
|
|
+ message: '是否删除当前登记信息'
|
|
|
})
|
|
})
|
|
|
.then(() => {
|
|
.then(() => {
|
|
|
const { id } = params.value.details[index]
|
|
const { id } = params.value.details[index]
|
|
@@ -1667,17 +1675,17 @@ async function checkValidateDate(ownerCode, sku, newDate, fieldName) {
|
|
|
newDate: newDate,
|
|
newDate: newDate,
|
|
|
fieldName: fieldName,
|
|
fieldName: fieldName,
|
|
|
ownerCode: ownerCode,
|
|
ownerCode: ownerCode,
|
|
|
- sku: sku,
|
|
|
|
|
|
|
+ sku: sku
|
|
|
})
|
|
})
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'success',
|
|
type: 'success',
|
|
|
- message: `${type} 状态校验成功 `,
|
|
|
|
|
|
|
+ message: `${type} 状态校验成功 `
|
|
|
})
|
|
})
|
|
|
return true
|
|
return true
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'danger',
|
|
type: 'danger',
|
|
|
- message: `校验${type}出现异常`,
|
|
|
|
|
|
|
+ message: `校验${type}出现异常`
|
|
|
})
|
|
})
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
@@ -1719,7 +1727,7 @@ function pushImageItem(event, type) {
|
|
|
src: URL.createObjectURL(file),
|
|
src: URL.createObjectURL(file),
|
|
|
file: file,
|
|
file: file,
|
|
|
fileName: filename,
|
|
fileName: filename,
|
|
|
- type,
|
|
|
|
|
|
|
+ type
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (type === '外箱图') {
|
|
if (type === '外箱图') {
|
|
@@ -1802,25 +1810,25 @@ function submit() {
|
|
|
if (!ownerCode || ownerCode.length === 0) {
|
|
if (!ownerCode || ownerCode.length === 0) {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'warning',
|
|
type: 'warning',
|
|
|
- message: '没有对应的退件详情!请录入对应的退件详情',
|
|
|
|
|
|
|
+ message: '没有对应的退件详情!请录入对应的退件详情'
|
|
|
})
|
|
})
|
|
|
return
|
|
return
|
|
|
} else if (!logisticsName || logisticsName.length === 0) {
|
|
} else if (!logisticsName || logisticsName.length === 0) {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'warning',
|
|
type: 'warning',
|
|
|
- message: '请录入承运商',
|
|
|
|
|
|
|
+ message: '请录入承运商'
|
|
|
})
|
|
})
|
|
|
return
|
|
return
|
|
|
} else if (!returnNo || ownerCode.length === 0) {
|
|
} else if (!returnNo || ownerCode.length === 0) {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'warning',
|
|
type: 'warning',
|
|
|
- message: '请录入退件单号',
|
|
|
|
|
|
|
+ message: '请录入退件单号'
|
|
|
})
|
|
})
|
|
|
return
|
|
return
|
|
|
} else if (!warehouseCode || warehouseCode.length === 0) {
|
|
} else if (!warehouseCode || warehouseCode.length === 0) {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'warning',
|
|
type: 'warning',
|
|
|
- message: '请选择登记仓库',
|
|
|
|
|
|
|
+ message: '请选择登记仓库'
|
|
|
})
|
|
})
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
@@ -1846,12 +1854,12 @@ function submit() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
handleDetails(params.value.details)
|
|
handleDetails(params.value.details)
|
|
|
- formData.append('body', JSON.stringify(params.value))
|
|
|
|
|
|
|
+ formData.append('body', JSON.stringify(JSON.parse(JSON.stringify(params.value))))
|
|
|
console.log(formData)
|
|
console.log(formData)
|
|
|
showLoadingToast({
|
|
showLoadingToast({
|
|
|
duration: 0,
|
|
duration: 0,
|
|
|
forbidClick: true,
|
|
forbidClick: true,
|
|
|
- message: '提交登记中.....',
|
|
|
|
|
|
|
+ message: '提交登记中.....'
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
register(formData)
|
|
register(formData)
|
|
@@ -1871,12 +1879,12 @@ function submit() {
|
|
|
showConfirmDialog({
|
|
showConfirmDialog({
|
|
|
title: '提交成功',
|
|
title: '提交成功',
|
|
|
message: messages.join('\r\n'),
|
|
message: messages.join('\r\n'),
|
|
|
- theme: 'round-button',
|
|
|
|
|
|
|
+ theme: 'round-button'
|
|
|
})
|
|
})
|
|
|
} else {
|
|
} else {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'success',
|
|
type: 'success',
|
|
|
- message: '成功提交',
|
|
|
|
|
|
|
+ message: '成功提交'
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
init()
|
|
init()
|
|
@@ -1893,7 +1901,7 @@ function checkDetailNumber() {
|
|
|
if (!details || details.length === 0) {
|
|
if (!details || details.length === 0) {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'warning',
|
|
type: 'warning',
|
|
|
- message: '登记详情不能为空',
|
|
|
|
|
|
|
+ message: '登记详情不能为空'
|
|
|
})
|
|
})
|
|
|
return true
|
|
return true
|
|
|
}
|
|
}
|
|
@@ -1904,7 +1912,7 @@ function checkDetailNumber() {
|
|
|
if (check) {
|
|
if (check) {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'warning',
|
|
type: 'warning',
|
|
|
- message: '登记数量不能为 0 和 空 ',
|
|
|
|
|
|
|
+ message: '登记数量不能为 0 和 空 '
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
return check
|
|
return check
|
|
@@ -1933,7 +1941,7 @@ const onPhotosPreviewChange = (index) => {
|
|
|
const handlePhotosDelete = () => {
|
|
const handlePhotosDelete = () => {
|
|
|
showConfirmDialog({
|
|
showConfirmDialog({
|
|
|
title: '提示',
|
|
title: '提示',
|
|
|
- message: '确定要删除这张图片吗?',
|
|
|
|
|
|
|
+ message: '确定要删除这张图片吗?'
|
|
|
})
|
|
})
|
|
|
.then(() => {
|
|
.then(() => {
|
|
|
selectDetail.value.productPhotos.splice(startPhotosPosition.value, 1)
|
|
selectDetail.value.productPhotos.splice(startPhotosPosition.value, 1)
|
|
@@ -1965,7 +1973,7 @@ const onBoxPreviewChange = (index) => {
|
|
|
const handleBoxDelete = () => {
|
|
const handleBoxDelete = () => {
|
|
|
showConfirmDialog({
|
|
showConfirmDialog({
|
|
|
title: '提示',
|
|
title: '提示',
|
|
|
- message: '确定要删除这张图片吗?',
|
|
|
|
|
|
|
+ message: '确定要删除这张图片吗?'
|
|
|
})
|
|
})
|
|
|
.then(() => {
|
|
.then(() => {
|
|
|
selectDetail.value.boxPhotos.splice(startBoxPosition.value, 1)
|
|
selectDetail.value.boxPhotos.splice(startBoxPosition.value, 1)
|
|
@@ -2014,13 +2022,18 @@ function checkUploadImages() {
|
|
|
if (!status.includes(qualityStatus)) {
|
|
if (!status.includes(qualityStatus)) {
|
|
|
return true
|
|
return true
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ if (!qualityStatus) {
|
|
|
|
|
+ return true
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
const boxPhotoIsNull = !boxPhotos || boxPhotos.length === 0
|
|
const boxPhotoIsNull = !boxPhotos || boxPhotos.length === 0
|
|
|
const productPhotoIsNull = !productPhotos || productPhotos.length === 0
|
|
const productPhotoIsNull = !productPhotos || productPhotos.length === 0
|
|
|
|
|
|
|
|
if (boxPhotoIsNull) {
|
|
if (boxPhotoIsNull) {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'warning',
|
|
type: 'warning',
|
|
|
- message: '请传入对应的外箱图',
|
|
|
|
|
|
|
+ message: '请传入对应的外箱图'
|
|
|
})
|
|
})
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
@@ -2028,7 +2041,7 @@ function checkUploadImages() {
|
|
|
if (productPhotoIsNull) {
|
|
if (productPhotoIsNull) {
|
|
|
showNotify({
|
|
showNotify({
|
|
|
type: 'warning',
|
|
type: 'warning',
|
|
|
- message: '请传入对应的内物图',
|
|
|
|
|
|
|
+ message: '请传入对应的内物图'
|
|
|
})
|
|
})
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
@@ -2072,7 +2085,7 @@ function previewImages(filenames, index, type) {
|
|
|
}
|
|
}
|
|
|
showImagePreview({
|
|
showImagePreview({
|
|
|
images: images,
|
|
images: images,
|
|
|
- startPosition: index,
|
|
|
|
|
|
|
+ startPosition: index
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|